Android 在servcie中编写的函数即使服务被破坏也会运行
我在服务中编写了一个函数,该函数在服务启动时执行Android 在servcie中编写的函数即使服务被破坏也会运行,android,Android,我在服务中编写了一个函数,该函数在服务启动时执行 public class SimpleService extends Service { public static final String TAG = "Service"; private Timer timer = new Timer(); @Override public IBinder onBind(Intent arg0) { return null; }
public class SimpleService extends Service {
public static final String TAG = "Service";
private Timer timer = new Timer();
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(this,"Service created ...", Toast.LENGTH_LONG).show();
Log.i(getClass().getSimpleName(), "Service started.");
startService() ;
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service destroyed ...", Toast.LENGTH_LONG).show();
}
private void startService() {
timer.scheduleAtFixedRate(new mainTask(), 0, 200000);
}
private class mainTask extends TimerTask {
public void run() {
for (int i = 0; i <300; i++) {
String count= String.valueOf(i);
Log.d(TAG, count);
}
}
}
protected Intent launchmain_menu() {
Intent i = new Intent(this, SimpleService.class);
return i;
}
}
问题是,即使我销毁了服务,启动服务函数中的循环也会停止
即
执行。我已经检查了emulitor中正在运行的服务,但在我单击按钮销毁服务后,启动我的me的服务不在那里。即使服务被销毁,循环是如何执行的
在查看此代码后,是否有人可以帮助我。您需要自己从服务中释放所有资源、侦听器等,因为android不为您提供这些服务。请使用onDestroy方法释放所有资源。请参阅此部分。执行循环是因为它使用您创建的计时器在不同的线程上执行。正如我在文章中所读到的,计时器任务一旦启动就不能停止,因此您必须在计划时间之前取消它,等待任务完成,或者以其他方式执行 从你的代码来看,你的服务似乎没有停止。谢谢你的评论,你是对的。当我取消计时器时,它停止了。
protected Intent launchmain_menu() {
Intent i = new Intent(this, SimpleService.class);
return i;
}
for (int i = 0; i <300; i++) {
String count= String.valueOf(i);
Log.d(TAG, count);
}