重新启动 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
然后它可以重新初始化自己。
我实现了一个目前运行良好的前台服务,该服务正在加载要使用的共享首选项。 现在,当用户更改这些参数并应用它们时,我必须重新启动服务,以便它可以从首选项加载新更改。
我的服务是 started/stopped 来自交换机,要重新启动它,我正在使用 :
@Override
public void onSettingsInteraction() {
if(pService.isRunning()){
pServiceSwitch.performClick();
pServiceSwitch.performClick();
}
}
回调正在监听设置片段交互;现在我的问题是;我应该在两个电话之间设置一个小的延迟还是让他们保持原样?恐怕这两个调用发生得太快,服务没有重新启动就停止了。
备选方案:与其停止和启动您的 Service
,不如使用包含 "extra" 的 Intent
调用 startService()
,表示 Service
应该重新加载参数。 Service
得到 onStartCommand()
中的 Intent
然后它可以重新初始化自己。