当我按下主页按钮将我的应用程序推送到后台并在之后恢复时,有时应用程序UI元素没有焦点。整个屏幕显示为灰色(亮度降低),并且无法单击屏幕上的按钮。更重要的是,事件硬件按钮除了音量,电源和家庭功能不起作用。唯一的解决方案是强制停止应用程序并重新启动。 此问题不可重现,并且在随机情况下很少发生。有没有其他人在他们的应用程序中看到过这个问题?
编辑::::::::::
我找到了真正的问题。这是更可重复的:我点击了一项网络服务,在AsyncTAsk,
下载数据并显示ProgressDialog
。当对话框显示时,如果用户按下主页按钮,则应用程序将被发送到后台。同时,下载完成,对话框被取消。现在,当用户返回应用程序时,activity
无法获得焦点,实质上,不再接收任何触摸事件。
在此处添加了异步任务的代码:
class GetStoresTask extends AsyncTask<String, Void, List<String>> {
ProgressDialog pd;
protected void onPreExecute() {
super.onPreExecute();
pd = ProgressDialog.show(DisplayStoresActivity.this,
getResources().getString(R.string.pleaseWait),
getResources().getString(R.string.dialogFindingStores),
true, true);
pd.setOnCancelListener(new OnCancelListener() {
public void onCancel(DialogInterface dialog) {
// TODO Auto-generated method stub
GetStoresTask.this.cancel(true);
}
});
}
protected List<Message> doInBackground(String... params) {
// carried out my download here
return downloadStoresList();
}
protected void onPostExecute(List<String> result) {
// TODO Auto-generated method stub
pd.dismiss();
adapter.notifyDataSetChanged();
super.onPostExecute(storesList);
}
当应用程序处于后台并且对话框被解除时,焦点不会转移到我的Activity
对话框。有没有人遇到类似的问题,或者有任何解决方案?
答案 0 :(得分:0)
不是通常的问题。当您在恢复屏幕/应用程序时执行一些繁重/复杂的操作时会发生这种情况。所以分析各种实现。