1
我開發了一個應用程序,其中我在onPostExecute()方法中執行一些操作後,在異步任務中使用Async任務,並顯示警報。每件事情都可以正常工作,但問題是應用程序來自後臺而不是顯示警報時顯示黑色透明圖層。爲什麼會發生?有任何想法嗎??顯示黑色透明層而不是警報
這裏是我的代碼片段和步驟來重現問題:
請創建活動使用異步任務:
private class ImageUploaderTask extends AsyncTask<Void, Integer, Void> {
ProgressDialog mProgressDialog;
private void showLoading()
{
mProgressDialog = ProgressDialog.show(myActivity.this,
"Loading", "Please wait...", false, false);
}
private void dismissLoading()
{
mProgressDialog.dismiss();
}
@Override
protected void onPreExecute() {
showLoading();
}
@Override
protected Void doInBackground(Void... arg0) {
try
{
Thread.sleep(50000);
}
catch (Exception e) {
// TODO: handle exception
}
}
@Override
protected void onPostExecute(Void result) {
dismissLoading();
showAlert(myActivity.this,"Info","Process Finished.");
}
public void showAlert(Context context, String Title, String Message) {
AlertDialog.Builder alertbox = new AlertDialog.Builder(context);
alertbox.setTitle(Title);
alertbox.setMessage(Message);
alertbox.setCancelable(false);
alertbox.setPositiveButton("OK",null);
alertbox.show();
}
@Override
protected void onCancelled() {
dismissLoading();
}
}
步驟來重現問題:
1)啓動異步任務並將應用程序發送到後臺
2)確保異步任務已完成並將應用程序置於前臺
3)而不是警報它會顯示黑色tranparent屏幕。