我有一个后台运行的service,当启动这个service之后希望它不会被高级任务管理器之类的软件kill掉。怎么实现?
希望高手解答。

解决方案 »

  1.   

    http://dev.10086.cn/cmdn/wiki/index.php?doc-view-3447.html
    看下这个,但是系统还是能干掉你的服务的,就算指定了android:protectionLevel="dangerous"
    或者更高的signature和signatureOrSystem,但是一旦进程管理软件拥有system权限,依然是可以终止你的service的。
    权限的说明参考sdk:
    file:////android/android-sdk-windows-1.5_pre/android-sdk-windows-1.5_pre/docs/reference/android/R.styleable.html#AndroidManifestPermission_protectionLevel
      

  2.   

    在init.rc 里启动服务,去掉oneshort参数。
      

  3.   

    去掉oneshort参数应该是关闭监视,可以kill吧。
    加上oneshort系统就会定时轮询,重新开启daemon。
    难道我记错了?
      

  4.   

    oneshort参数是服务退出时不重启,不知道去掉了会不会达到我要的效果。
    但是我最理想的效果还是,服务开启和关闭由用户决定而不是系统,而且是根本就杀不着而不是杀死了又自启。另外我发现“金山词霸”就是这样的,不知道是怎么实现的。
      

  5.   

    还有啊就算是要在 init.rc里写那么应该怎么写呢 用文件读写么?在模拟器上试了试找不到文件啊。
      

  6.   

    可以考虑在linux下面kill thread的源码里面改一下
    把你的service作为特殊处理来屏蔽掉 禁止删除
      

  7.   


    呵呵,
    最简单的方法:
    在ServiceA中, 不停的startService(B);
    同时在ServiceB中,不停的startService(A);
      

  8.   


    不行,一点高级任务管理器的“全部结束”两个service 全都杀死
      

  9.   


    这,是不是要跨进程调用?求无activity的实现方式!!!