gpt4 book ai didi

android - 使用 ProgressDialog 等待执行的 AsyncTask

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:43 25 4
gpt4 key购买 nike

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

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

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

最佳答案

所以我会尽可能多地解释

在 AsyncTask 中启动繁重的进程,但是在 AsyncTask 完成后要执行的任何代码都将其放在单独的公共(public)方法中。现在,一旦您完成繁重的进程调用,就会在 onPostExecute() 中单独创建方法。

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

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.
}
}

}

希望对你有帮助

祝你好运!

关于android - 使用 ProgressDialog 等待执行的 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6392933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com