重新启动我的Android服务

时间:2016-05-12 10:32:04

标签: java android service broadcastreceiver intentservice

我想完全停止我的服务,然后以编程方式再次运行它。但是当它调用OnDestroy()或stopSelf()方法时,它无法再次启动。 我怎样才能重启我的服务,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我在我的应用中使用这种方式:

停止服务:

mContext.stopService(new Intent(mContext, LocationProviderService.class));

开始服务:

if(!HelperUtils.isMyServiceRunning(LocationProviderService.class, getApplicationContext()))
  {
      startService(new Intent(this, LocationProviderService.class));
  }

isMyServiceRunning方法:

public static boolean isMyServiceRunning(Class<?> serviceClass,Context mContext) {
    ActivityManager manager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
    for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (serviceClass.getName().equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}