0

当我按下主页按钮将我的应用程序推到后台并在之后恢复时,有时应用程序 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. 有没有人遇到过类似的问题,或者有什么解决办法?

4

1 回答 1

0

不是一个常见的问题。当您在恢复卡住 UI 的屏幕/应用程序上执行一些繁重/复杂的操作时,就会发生这种情况。所以分析各种实现。

于 2011-11-16T07:14:04.900 回答