android – 等待使用ProgressDialog执行AsyncTask

我有一个方法public void writeEntry(Activity ctx,Entry entry),它获取一些数据并且必须调用本机方法,这需要更长的时间才能完成.
所以我创建了一个处理ProgressDialog和本机方法的AsyncTask.它在自己的Activity中运行很好来测试它,在Activity中我使用了一个回调接口等等.

在我的情况下,我有上述方法,并且必须执行AsyncTask.执行不能在该方法中,因为它不会停止进一步执行.
在继续执行之前,我需要本机方法的结果.
是否有可能等待AsyncTask直到它完成?方法wait()不是一个选项,因为UI线程也会等待,因此ProgressDialog的意义将会丢失.

我可以使用给定参数中的方法runOnUiThread(),还是启动自己的Activity的唯一解决方案?

解决方法:

所以我会尽力解释

在AsyncTask中启动繁重的进程,但是在完成AsyncTask之后要执行的任何代码都将它放在一个单独的公共方法中.现在,一旦你完成了在onPostExecute()中单独创建的方法的重过程调用.

所以psuuedo代码看起来像这样,

class main extends Activity {

    class Something extends AsyncTask<String, Integer, String> {

        protected void onPreExecute() {
            // Start your progress bar...
        }

        protected String doInBackground(String... params) {
            // Do your heavy stuff...
            return null;
        }

        protected void onPostExecute(String result) {
            // close your progress dialog and than call method which has
            // code you are wishing to execute after AsyncTask.
        }
    }

}

希望这会有所帮助,

祝好运!

上一篇:在另一个Activity中解除Progress Dialog … Android


下一篇:android – 如何自定义进度加载器?