本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context  ↳android.content.ContextWrapper  ↳android.app.Service Service是应用程序Application的一个组件(component).它的作用有两点:1.用来提供一个长期在后台运行并且不与用户交互的操作,2.也可以为其他应用程序提供服务.Service…
本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context  ↳android.content.ContextWrapper  ↳android.app.Service Service是应用程序Application的一个组件(component).它的作用有两点:1.用来提供一个长期在后台运行并且不与用户交互的操作,2.也可以为其他应用程序提供服务.Service…
重写service的onStartCommand方法. @Override    public int onStartCommand(Intent intent, int flags, int startId) {         return START_STICKY;    }    简单介绍下这个方法,在Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在o…
Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系统内部会自动分配,控制程序的内存使用.当系统觉得当前的资源非常有限的时候,为了保证一些优先级高的程序能运行,就会杀掉一些他认为不重要的程序或者服务来释放内存.这样就能保证真正对用户有用的程序仍然再运行.如果你的 Service 碰上了这种情况,多半会先被杀掉.但如果你增加 Service 的优先级就能让他多留一会,我们可以用 setForeground(true) 来设置 Service 的优先级. 为什么是 for…
关于如果和防止android 程序防止被360kill掉之后重启的问题,肯定大家也搜索了好多方法,都不好使,对不对,什么增高权限了,什么进程优先级了,这些东西都不是我们可控的,所以有没有一些非常保险的方法,让程序被kill掉之后自动重启呢. 大家发现没有,当我们使用360进行程序清理的时候,有些应用自己快速的启动起来了,他们是怎么实现的呢?其实我们没有见过他们的源码,也不好说是怎么实现的. 我在下面将为大家提供一些思路,也许会对你有所帮助: windows上流氓软件和病毒特别多,有时候你根本查杀…
转载请注明出处:http://blog.csdn.net/cuiran/article/details/38851401 目前遇到一个问题程序需要一直运行,并显示在最前端,但是运行一段时间发现会被系统Kill掉,这样程序就退出回到了桌面,不能实现一直运行的效果.为了实现此效果,也想了一些办法.如下: 1.可以将应用改为系统应用--由于程序需要定期更新,如果被放入系统应用,更新会非常麻烦,故没有采用. 2.在软件的onDestroy()方法中,发送重新启动应用的广播--如果程序是直接被kill掉…
有一种方法可以设置app永远不会被kill,AndroidManifest.xml 中添加: android:persistent="true" 适用于放在/system/app下的app   设置后app提升为系统核心级别,任何情况下不会被kill掉, settings->applications里面也会屏蔽掉stop操作, 设置前 Proc #19: adj=svc  /B 4067b028 255:com.xxx.xxx/10001 (started-services) #…
由于一些需求的原因需要让自己App长时间在后台.虽然这样的做法是很Orz的,但是由于项目需求有时候不得不这样做.QQ.微信之所以没被第三方应用直接给kill掉,从市场原因腾讯的软件已经深入人心,很多厂家或是软件早就把这些软件加入白名单中! 但是作为App的开发人员来说肯定是强烈建议不要这么做,不仅仅从用户角度考虑,作为Android开发者也有责任去维护Android的生态环境.就是因为越来越多的这样的占用系统内存的进程越来越多才使得android手机越来越卡,android碎片化的原因越来越多的…
自己的app的service总是容易被系统回收,搜罗了一下,基本上的解决思路有以下几种: 1.把service写成系统服务,将永远不会被回收(未实践): 在Manifest.xml文件中设置persistent属性为true,则可使该服务免受out-of-memory killer的影响.但是这种做法一定要谨慎,系统服务太多将严重影响系统的整体运行效率. 2.提高service的优先级(未实践): 设置android:priority="1000" <!-- 为了消去加上andr…
一般来说,在Android系统中,当某进程较长时间不活动,或系统资源比较紧时,该进程可能被系统kill掉,以此来回收一些资源.Android系统会根据进程的优先级来选择性地杀死一些进程,优先级从高到低依次是: 1. 前台进程(Foreground Process) 2. 可视进程(Visible Process) 3. 服务进程(Service Process) 4. 后台进程(Background Process) 5. 空进程(Empty Process) 1. 前台进程(Foregroun…