重新启动 android 服务的好方法

Restarting android service the good way

我实现了一个目前运行良好的前台服务,该服务正在加载要使用的共享首选项。 现在,当用户更改这些参数并应用它们时,我必须重新启动服务,以便它可以从首选项加载新更改。

我的服务是 started/stopped 来自交换机,要重新启动它,我正在使用 :

@Override
public void onSettingsInteraction() {
    if(pService.isRunning()){
        pServiceSwitch.performClick();
        pServiceSwitch.performClick();
    }
}

回调正在监听设置片段交互;现在我的问题是;我应该在两个电话之间设置一个小的延迟还是让他们保持原样?恐怕这两个调用发生得太快,服务没有重新启动就停止了。

备选方案:与其停止和启动您的 Service,不如使用包含 "extra" 的 Intent 调用 startService(),表示 Service 应该重新加载参数。 Service 得到 onStartCommand() 中的 Intent 然后它可以重新初始化自己。