Android:当对话框在后台被取消时,Activity不接收焦点



当我按下home键将应用程序推到后台,然后再恢复应用程序时,有时应用程序UI元素没有焦点。整个屏幕都变灰了(亮度降低了),屏幕上的按钮都无法点击。另外,如果硬件按键(除外)音量、电源和home不工作。唯一的解决办法是强制停止应用程序并重新开始。这个问题是不可重复的,并且只在随机场合很少发生。还有其他人在他们的应用程序中看到这个问题吗?

编辑 ::::::::::

我发现了真正的问题。这是更可复制的:我点击web服务下载AsyncTAsk,中的数据并显示ProgressDialog。在显示对话框时,如果用户按下home键。,应用程序被发送到后台。同时,下载完成,对话框被取消。现在当用户回到应用程序时,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。有没有人遇到过类似的问题,或者有什么解决办法?

不常见的问题。当你在恢复屏幕/应用程序上做一些繁重/复杂的操作时,它就会发生。所以分析各种实现。

最新更新