gpt4 book ai didi

android - 当服务停止时,服务启动的 AsyncTask 是否完成?

转载 作者:行者123 更新时间:2023-11-29 22:11:12 25 4
gpt4 key购买 nike

我有一项服务可以执行常规操作,例如蓝牙发现和发送电子邮件。根据状态,它启动不同的线程来进行蓝牙套接字连接或发送电子邮件。我正在使用 AsyncTask 发送电子邮件,目前运行良好。

我的问题是:我从服务启动的 AsyncTask 是在服务停止时完成,还是在 AsyncTask 完成之前服务没有停止?在正常情况下,服务永远不会“停止”,但可以在内存不足、电池电量不足或手机关机时停止。我需要在Service停止后恢复操作,我想知道如何在Service停止时判断AsyncTask是否已经完成。

我已经包含了我的代码的快照。

public class ScheduledService extends Service {
SendEmailAsyncTask emailTask;
boolean emailSuccess;

@Override
public int onStartCommand(Intent intent, int flag, int startId) {
log.v("onStart()");
super.onStartCommand(intent, flag, startId);
// do regular operations

if (state == sendEmail) {
emailTask = new SendEmailAsyncTask();
emailTask.execute();
}
}


class SendEmailAsyncTask extends AsyncTask <Void, Void, Boolean> {

@Override
protected Boolean doInBackground(Void... params) {
// send email
}

@Override
protected void onPostExecute(Boolean result){
if (result) {
createNotification("Email has been sent!");
emailSuccess = true;
} else {
//try again
emailSuccess = false;
}
}
}
}

最佳答案

如果服务停止,任务不会停止。除非你在服务的onDestroy的实现中调用任务的cancel方法,它只会在完成时结束

关于android - 当服务停止时,服务启动的 AsyncTask 是否完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9593083/

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