如何重启服务?

我有一个服务,我想停止它,然后在用户点击特定按钮时重新启动,我有:

    stopService(new Intent(getBaseContext(), TimerService.class));
    startService(new Intent(getBaseContext(), TimerService.class));

但是,我的印象是,每次我按下按钮时,这实际上都会创建多个服务。如何在不创建重复项的情况下启动和停止相同的服务?

编辑:不幸的是,建议的项目对我不起作用。在尝试实施给定的答案时,不幸的是它没有改变任何东西。我的初始计时器记录它的滴答声,不幸的是,滴答声仍然作为第二个计时器发生,它嵌套在 onFinish 函数中尚未发生。所以不能停止服务。


千巷猫影
浏览 197回答 1
1回答

慕尼黑5688855

我相信您的问题可能在于使用getBaseContext(),请查看此答案。我在将基本上下文与服务一起使用时遇到了问题。此外,检查您的意图,您正在使用停止服务器创建一个新意图,而不是使用参考服务来停止它。也看看这个答案。尝试:    Intent i = new Intent(getApplicationContext(), TimerService.class);     stopService(i);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java