gpt4 book ai didi

java - 我手动强制退出应用程序并重新启动后,异步任务不会调用 OnPostExecute 或 onProgressUpdate

转载 作者:行者123 更新时间:2023-12-01 14:50:46 24 4
gpt4 key购买 nike

我有一个 AsyncTask,它在 doInBackground() 方法中下载文件。我正在发布我的应用程序之前对其进行测试。当我手动强制退出应用程序并重新启动它时,似乎会调用 doInBackground() ,但不会调用 onProgressUpdate()onPostExecute() 。我的 onPostExecute() 调用方法会导致 UI 更改。

如何确保调用 onPostExecuteonProgressUpdate()?我还看到以下警告:

Activity 停止 ActivityRecordActivity 超时 ActivityRecordActivity 销毁超时> ActivityRecord 的空闲超时

代码:

public void OnCreate(){

new RefreshMyDashboardTask().execute();
}

private class RefreshMyDashboardTask extends AsyncTask<Void, Void, Long> {

@Override
protected void onPreExecute() {
}

@Override
protected void onProgressUpdate(Void... params) {
super.onProgressUpdate(params);
}

@Override
protected Long doInBackground(Void... params) {
// my server calls are called here.
}

@Override
protected void onPostExecute(Long result) {
}
}

最佳答案

如果您终止应用程序,或者系统终止它,则应用程序的 AsyncTask 线程将被终止。它们都是应用程序流程的一部分;线程无法在启动它们的进程之外生存。

即使是 IntentService 也可能无法在强制退出后继续存在。这就是为什么任务 killer 是一个坏主意。

简而言之,您所看到的是预期的行为。

关于java - 我手动强制退出应用程序并重新启动后,异步任务不会调用 OnPostExecute 或 onProgressUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14886280/

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