当我按下主页按钮将我的应用程序推到后台并在之后恢复时,有时应用程序 UI 元素没有焦点。整个屏幕有点变灰(亮度降低),屏幕上的任何按钮都不能点击。此外,如果除音量、电源和主页之外的硬件按钮不起作用。唯一的解决方案是强制停止应用程序并重新启动。这个问题是不可重现的,并且很少在随机场合发生。有没有其他人在他们的应用程序中看到这个问题?
编辑 ::::::::::
我发现了真正的问题。这更具重现性:我点击了一个 Web 服务来下载数据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);
}
似乎当应用程序处于后台并且对话框被关闭时,焦点不会转移到对话框到 my Activity
. 有没有人遇到过类似的问题,或者有什么解决办法?