【发布时间】:2019-12-02 16:02:08
【问题描述】:
我知道这个问题已经被问过了,但我找到的解决方案并不能解决问题,至少对我来说是这样。
我有一个简单的服务,我在某个时间从一个活动中调用它。此服务每三秒执行一次操作。 该服务运行良好,但在阅读了很多关于该主题并尝试了我找到的所有解决方案之后,我无法销毁该服务并停止它。 onStartCommand 方法总是再次运行,我重新开始。
谁能告诉我我必须对代码进行哪些更改才能完全停止服务并销毁它?
我坚持,stopSelf()、stopService() 等等……服务从未停止过
非常感谢,我留下我的代码:
public class myService extends Service {
//...
@Override
public void onCreate() {
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (mTimer != null) {
} else {
mTimer = new Timer();
}
mTimer.scheduleAtFixedRate(new TimeDisplayTimerTask(), 0, NOTIFY_INTERVAL);
return Service.START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onDestroy() {
Log.e(TAG,"Service onDestroy");
}
class TimeDisplayTimerTask extends TimerTask {
@Override
public void run() {
// run on another thread
mHandler.post(new Runnable() {
@Override
public void run() {
vuelta = vuelta +1;
if (vuelta==2){
stopSelf();
} else {
// NA
}
}
});
}
}
}
【问题讨论】: