首页 > 解决方案 > 如何重启服务?

问题描述

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

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

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

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

标签: javaandroidandroid-service

解决方案


我相信您的问题可能在于使用getBaseContext()请查看此答案。我在将基本上下文与服务一起使用时遇到了问题。另外,请检查您的意图,您正在使用停止服务器创建新的意图,而不是使用参考服务来停止它。也看看这个答案。

尝试:

    Intent i = new Intent(getApplicationContext(), TimerService.class);
    stopService(i);

推荐阅读