2014-02-16 53 views
-1

我怎麼能殺是從我的應用程序啓動的服務殺(不osStopService())服務

代碼啓動服務:

startService(new Intent(getApplicationContext(),MyService.class); 

我需要殺死服務proccess,不stopService()停止方法。

+1

「不停止stopService()方法」是什麼意思? – CommonsWare

+0

@CommonsWare這意味着我想殺死從他開始的服務和線程 –

回答

1

你可以嘗試使用:

public void stopService(Context context) { 
    final PackageManager packageManager = context.getPackageManager(); 

    ComponentName componentName = new ComponentName(
      YourActivity.this.getPackageName(), 
      YourService.class.getName()); 

    packageManager.setComponentEnabledSetting(componentName, 
      PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
      PackageManager.DONT_KILL_APP); 

    if (YourService.intentVariable != null) { 
     stopService(YourService.intentVariable); 
    } 

} 

寫stopService方法和使用它的軟件包管理器阻止你想要的服務,並體驗包管理器。

1

服務沒有自己的進程。 UI線程上的執行就像Activity一樣。除非您通過Thread或AsyncTask創建自己的程序,否則沒有任何過程可以結束。在這種情況下,你需要保持一個實例,強制它們在你的服務的onDestroy函數中結束自己。