【发布时间】:2019-05-02 19:51:34
【问题描述】:
我让两个按钮一个来启动服务,另一个来停止它
当我按下停止按钮时通知我服务已停止但实际上它仍在后台工作
我在我的onStartCommand() 方法中使用计时器,每秒重复一次
是这个原因吗..?以及如何强制立即停止服务。
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(getApplicationContext(),"start..",Toast.LENGTH_SHORT).show();
new Timer().scheduleAtFixedRate(new TimerTask() {
private Handler handler = new Handler(){
@Override
public void dispatchMessage(Message msg) {
Toast.makeText(getApplicationContext(),""+(counter+=1),Toast.LENGTH_SHORT).show();
}
};
@Override
public void run() {
handler.sendEmptyMessage(0);
}
},0,1000);
return START_STICKY;
}
`
还有我的按钮操作:-
public void btnStart(View view){
startService(new Intent(MainActivity.this,MyService.class));
}
public void btnStop(View view){
stopService(new Intent(MainActivity.this,MyService.class));
}
我找到了答案..! 答案是必须在 onDestroy 方法中取消 timer 和 timerTask
【问题讨论】:
-
请输入您的服务类以及您如何调用您的服务,以便我们进行故障排除:)
-
我更新问题..
-
我在问题本身中找到了答案..答案是 - 必须在 onDestroy 方法中取消 Timer 和 TimerTask 我测试它并且效果很好
标签: java android android-service