ホームボタンを押してアプリケーションをバックグラウンドにプッシュし、後で再開すると、アプリの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);
}
アプリがバックグラウンドにあり、ダイアログが閉じられている場合、フォーカスがダイアログに転送されないようActivity
です。誰かが同様の問題に直面したことがありますか、またはこれに対する解決策がありますか?