2012-03-09 32 views
0

當外部應用程序啓動時是否可以停止服務?當外部進程啓動時停止服務

對於一項活動,您可以使用getRunningAppProcesses()並在列表中檢查您想要運行的應用程序。但是服務呢?

+0

嘗試'getRunningServices()'ActivityManager' – 2012-03-09 16:23:29

+0

的'方法,但我需要在一個服務運行,而不是在一個活動 – 2012-03-09 16:58:10

+0

'ACTIVITY_SERVICE'在您的服務 – 2012-03-09 17:08:32

回答

0

使用此:

public class TestService extends Service { 

    @Override 
    public void onCreate() 
    { 
     ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE); 
     List rs = am.getRunningServices(50); 

     for (int i=0; i<rs.size(); i++) { 
     ActivityManager.RunningServiceInfo rsi = (RunningServiceInfo) rs.get(i); 
     Log.i("Service", "Process " + rsi.process + " with component " + rsi.service.getClassName()); 
     } 
     super.onDestroy(); 
     Toast.makeText(getApplicationContext(),"1. onCreate()", Toast.LENGTH_SHORT).show(); 
    } 
} 
+0

也可因此如果過程可用並且不停止,我的服務需要每X秒檢查一次。這會耗盡電池,我說得對嗎? – 2012-03-09 19:04:42

+0

是的,你是對的。 – 2012-03-09 19:20:01

+0

感謝您的回答。但是有沒有不影響電池的另一種方式? – 2012-03-10 11:10:26