杀死(不是osStopService())服务

时间:2014-02-16 00:44:37

标签: android android-service

我如何杀死从我的应用程序启动的服务

启动服务代码:

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

我需要杀死服务进程,不要停留在stopService()方法。

2 个答案:

答案 0 :(得分:1)

服务没有自己的流程。 UI线程上的执行就像Activity一样。除非您通过Thread或AsyncTask启动了自己的流程,否则无法结束任何流程。在这种情况下,您需要保留一个实例并强制它们在您的服务的onDestroy函数中结束自己。

答案 1 :(得分: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方法,然后使用包管理器来停止你想要的服务,并试用包管理器。