gpt4 book ai didi

android - 在应用程序退出时取消 AsyncTask SOVLED

转载 作者:行者123 更新时间:2023-11-29 16:03:09 28 4
gpt4 key购买 nike

我的应用程序似乎有问题。发生的事情是我想在用户关闭程序时终止我的异步任务。我的理由是,我有一个运行 AsyncTask 的 StopWatch,当用户关闭程序时,Task 继续运行并占用内存。我想使用此方法取消任务:

 Task.cancel(true);

但我不知道什么时候在我的 Activity 中调用电话。我该怎么做?这是我正在运行的任务:

 public class timer extends AsyncTask<String, String, String> {

@Override
protected String doInBackground(String... params) {
while(true){
while(milli < 1000 && running){ //running and other vars are arbitrary variables
running = true;
milli++;
try{
Thread.sleep(1);
}
catch(Exception e1){
System.out.println(e1);
}
if(milli == 1000){
milli = 0;
secs++;
}
if(secs == 60){
secs = 0;
mins++;
}
if(mins == 60){
hours++;
mins = 0;
}
this.publishProgress(milli+":"+secs+":"+mins+":"+hours); }
}
return null;
}
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
TextView display = (TextView) findViewById(R.id.textView1);
display.setText(values[0]);
}
}
#####解决方案################解决方案

我从每个人那里学到了一些东西,但我最终还是自己弄明白了。我像这样覆盖了 Activity 的 onStop 方法:

protected void onStop(){
super.onStop();
Task.cancel(true);
}

感谢所有贡献者!

#####解决方案################解决方案

最佳答案

如果你想停止异步任务,你可以使用 asyncTask.cancel(true/false); true 指定 android 系统停止这个服务,即使它已经启动, false 指定 android 系统如果已经启动则不停止此任务。 如果您想在 Activity 失去交互时停止此服务,请将其写入 onPause() 或者,如果您想在 Activity 销毁时取消,请在 onDestroy() 中调用它 for more detail check this

关于android - 在应用程序退出时取消 AsyncTask SOVLED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002993/

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