Ⅰ 怎样使一个android应用不被杀死
要让android应用不被杀死,可以开启一个service,一直检测是否关闭了应用,一旦关闭马上重新启动。
当然首先要保证service不被杀死,应当提升service的优先级,设为前台运行。也可以开启两个service互相检测,一旦其中一个被关闭,另一个 马上重启对方。可以保证其生命稳定。这种方法也不是都行的,有些系统仍然能杀死。
Ⅱ android后台服务保持,不被杀死
作者:闭关写代码
链接:https://www.hu.com/question/29826231/answer/71207109
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
强烈建议不要这么做,不仅仅从用户角度考虑,作为Android开发者也有责任去维护Android的生态环境。现在很多Android开发工程师,主力机居然是iPhone而不是Android设备,感到相当悲哀。
从技术角度概括一下现在普遍的防杀方法
Service设置成START_STICKY,kill 后会被重启(等待5秒左右),重传Intent,保持与重启前一样
通过 startForeground将进程设置为前台进程,做前台服务,优先级和前台应用一个级别,除非在系统内存非常缺,否则此进程不会被 kill
双进程Service:让2个进程互相保护,其中一个Service被清理后,另外没被清理的进程可以立即重启进程
QQ黑科技:在应用退到后台后,另起一个只有 1 像素的页面停留在桌面上,让自己保持前台状态,保护自己不被后台清理工具杀死
在已经root的设备下,修改相应的权限文件,将App伪装成系统级的应用(Android4.0系列的一个漏洞,已经确认可行)
Android系统中当前进程(Process)fork出来的子进程,被系统认为是两个不同的进程。当父进程被杀死的时候,子进程仍然可以存活,并不受影响。鉴于目前提到的在Android-Service层做双守护都会失败,我们可以fork出c进程,多进程守护。死循环在那检查是否还存在,具体的思路如下(Android5.0以下可行)
用C编写守护进程(即子进程),守护进程做的事情就是循环检查目标进程是否存在,不存在则启动它。
在NDK环境中将1中编写的C代码编译打包成可执行文件(BUILD_EXECUTABLE)。
主进程启动时将守护进程放入私有目录下,赋予可执行权限,启动它即可。
联系厂商,加入白名单
------------------------------------------------------
TIP: 面对各种流氓软件后台常驻问题,建议使用“绿色守护”来解决,可是杀掉那些第三方清理工具难以清除的后台程序
Ⅲ 怎样杀死android service进程
这个意外进程停止,出现的情况有两种: 1.程序后台运行时,系统资源不足时自动杀死该进程从而获取更多的资源,而用户在进入该界面时,进程已被杀死而无法恢复前一状态而引起的程序崩溃. 2.手机root后,用户权限扩大导致误删了系统个别文件导致的程序无法运行. 解决办法: 1.种情况属于系统内部的,无法干涉 2.从新刷机,刷机后进行反root,保证用户没有最高权限而不能删除系统文件,
Ⅳ android service :搜狗输入法是如何能够一直在后台运行而不被杀死
虽然我没研究过搜狗输入法的Service,但不想让一个Service被干掉,在它生命周期的onDestroy阶段,再用Intent或PaddingIntent自启动就好了吧。说白了就是——你打死我,我原地复活重来
虽然我不清楚你打算干嘛,但没必要(使用频率不高)的话,让Service在用户手机里赖着不走占资源+耗电纯属损人不利自己。只要用户有点手机知识,很容易就能在手机后台中看到你的Service与总运行时间,当他(她)发先这个Service一直在后台运行而且还不能结束时,我估计他(她)对你这个应用恐怕不会有什么好印象
如果你的Service用的不频繁,只是每隔段时间要定期或不定期在后台做一些短时间的操作,建议还是用IntentService+AlarmManager+PaddingIntent,IntentService执行完任务会自己关闭,AlarmManager+PaddingIntent用来定期唤醒cup启动IntentService。
这样的话Service只在执行任务时启动,执行完就不留痕经的消失,90%以上的时间你在后台都看不到它。就是说只在必要时来你家,而不是不管有事没事都赖在你家不走。这么一来比较不会招人烦……