等待异步操作完成android

时间:2012-11-06 01:43:19

标签: java android asynchronous

我开始使用Android开发。我有一个异步操作,但我的意图是等待操作完成,然后继续执行我的程序。 我已经使用了AsyncTask及其所有方法,但是我得到了错误,因为在onPreExecute方法中我想显示另一个Activity,所以我想我无法显示另一个Activity。这就是我想等待完成异步操作的原因。

问候

第1次编辑: 我已经使用了AsyncTask(onPreExecute,doInBa ...,onPost ...),但没有一种方法可行。我理解AsyncTask类是如何工作的,但是我想在调用一个异步的thirdparty方法时停止执行,因为在需要的监听器中,我更改了String变量X的值,并且在调用我的方法之后,使用了第三方方法,我使用变量X.我得到了一个例外,因为变量没有更新。

2 个答案:

答案 0 :(得分:1)

请阅读并遵循AsynTask的示例。您需要覆盖onPostExecute

答案 1 :(得分:0)

不确定问题是什么,但AsynTask有一个方法,你可以在一切完成后调用。一个好的做法是让对话框或微调器显示工作正在发生然后解除它。

    class loadingTask extends AsyncTask<String, Void, String> {

        protected String doInBackground(String... urls) {
            //Do work

        }

        protected void onPostExecute(String s) {
            ShowProgress.dismiss();

            Intent myIntent = new Intent(this, PostExAct.class);
            startActivity(myIntent);

        }
    }

在你的创作中:

ShowProgress = ProgressDialog.show(MainActivity.this, "",
            "Loading. Please wait...", true);
    new loadingTask().execute("params here");

这将显示一个加载对话框,当工作完成时,工作完成后将被解除。