首页 文章

停止或终止服务

提问于
浏览
3

我正在开发一个任务管理器应用程序

在该应用程序中,我向用户显示每个应用程序旁边正在运行的应用程序列表和终止按钮 . 当用户按下kill按钮时,相应的活动将被终止并且我被使用

activitymanager.killbackgroundprocesses(packageName)

我创建了另一个名为服务通知的应用程序,用户可以通过单击按钮“启动服务”和按钮“停止服务”来启动和停止服务 . 然后在运行我的任务管理器应用程序之前,我从服务通知应用程序启动了服务 . 所以这个活动显示在我的任务管理器应用程序中 .

但是,当我杀死该活动时,它会从列表中消失,然后再次出现,因为服务正在重新启动 . 那么我如何杀死服务呢?

我使用startService和onCreate来启动服务并显示一些通知和stopService以及onDestroy来停止服务...

2 回答

  • 8

    尝试在Android清单文件中使用此权限 .

    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
    

    看看这个链接可能会有所帮助...... http://developer.android.com/reference/android/content/Context.html#startService%28android.content.Intent%29

    而且这个:Start a service on onClick

  • 2

    我终于找到了我的问题的答案......

    使用后

    activitymanager.killbackgroundprocesses(packageName) ,
    

    我们必须检查是否有任何服务在该包名或进程名下运行 .

    然后我们必须使用

    stopService(new Intent().setComponent(serviceInfos.get(i).service))
    

    但它会返回一个错误,因为android不允许我们停止另一个服务

    所以我在清单中使用了这两行,然后在构建机器中运行了我的应用程序

    coreApp="true" 
    android:sharedUserId="android.uid.system"
    

    android设置清单文件中有这两行,如果用户需要,它允许设置停止服务 .

    所以这项活动随着服务而被杀死...... :)

    并记住这只适用于构建机器....

相关问题