2017-08-24 65 views
0

如何檢測,如果服務沒有運行,和5之後每一次運行該服務二段檢測和運行服務,如果沒有運行

try { 


     Intent ishintent = new Intent(this, OnlineWatcherService.class); 
     PendingIntent pintent = PendingIntent.getService(this, 0, ishintent, 0); 
     AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
     alarm.cancel(pintent); 
     alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),5000, pintent); 
     Toast.makeText(getApplicationContext(), "service Alaram", Toast.LENGTH_SHORT).show(); 
    } catch (Exception e) { 
    } 

回答

0

對於檢測正在運行的服務或不是你可以用下面的方法:

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

然後

if (!isMyServiceRunning(MyService.class)) //do something here