我在它运行always.Now我从我的服务器通过GCM一个设置,这些设置更新到我的服务Android应用程序有一个服务。 我把服务的OnCreate中我的设置。 所以,我需要重新启动我的服务来获取最新的设置。 如何重新启动我的服务?
Answer 1:
调用此两种方法之后对方,这将导致Service
停止和启动。 不知道有什么方法“重启”了。 这是我如何在我的应用程序中实现它。
stopService(new Intent(this, YourService.class));
startService(new Intent(this, YourService.class));
Answer 2:
最好的解决办法是使用的onDestroy()。
当需要重新启动该服务只需调用
RESTARTSERVICE = true;
stopService(new Intent(this, CLASS_OF_SERVICE.class));
和
public void onDestroy()
{
if (RESTARTSERVICE)
{
startService(new Intent(this, CLASS_OF_SERVICE.class));
}
}
Answer 3:
为什么不从的onCreate移动设置的东西到一个单独的方法。 然后,您可以调用从的onCreate这种方法并调用它,当你需要更改设置。 那么就没有必要真正重新启动该服务。
Answer 4:
使用方法onTaskRemoved(意向rootIntent)内的服务,因此服务再次重新启动
@Override
public void onTaskRemoved(Intent rootIntent) {
System.out.println("service in onTaskRemoved");
long ct = System.currentTimeMillis(); //get current time
Intent restartService = new Intent(getApplicationContext(),
PushService.class);
PendingIntent restartServicePI = PendingIntent.getService(
getApplicationContext(), 0, restartService,
0);
AlarmManager mgr = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
mgr.setRepeating(AlarmManager.RTC_WAKEUP, ct, 1 * 1000, restartServicePI);
}
Answer 5:
只是再次调用startService()
将再次启动该服务,如果它已经运行,这意味着服务将被重新启动。
文章来源: How to restart service in android to call service oncreate again