0

调用 MainActivity 时,我正在制作加载效果。我不知道为什么我的 Dialog.show 不能在 AsyncTask 中工作。我只看到它关闭的那一刻,但在此之前从未出现过对话框。谢谢你。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    new LoadViewTask().execute(); 
    setContentView(R.layout.activity_main);
....}



private class LoadViewTask extends AsyncTask<Void, Integer, Void>
{
    @Override
    protected void onPreExecute() { 
        progressDialog = ProgressDialog.show(MainActivity.this,"Loading...","Loading application View, please wait...", false, false);  

    }

    @Override
    protected Void doInBackground(Void... params) 
    {
        try 
        {
            synchronized (this) 
            {
                int counter = 0;
                while(counter <= 4)
                {
                    this.wait(1000);
                                            counter++;
                    publishProgress(counter*25);
                }
            }
        } 
        catch (InterruptedException e) 
        {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onProgressUpdate(Integer... values) 
    {
        progressDialog.setProgress(values[0]);
    }

    @Override
    protected void onPostExecute(Void result) 
    {
        progressDialog.dismiss();
    }


}
4

2 回答 2

0

在开始异步任务之前尝试设置内容视图:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Set the content view first
    setContentView(R.layout.activity_main);
    new LoadViewTask().execute(); 
....}
于 2012-12-07T02:34:19.893 回答
0

您应该使用 FragmentDialogs 在 Android 中使用对话框。

这里解释得很好:

http://developer.android.com/intl/es/reference/android/app/DialogFragment.html

于 2012-12-07T02:25:57.600 回答