安卓 开发 /
1.有控制的运用效劳
假如你的运用需求运用service来在后台运转作业,除非有活动的履行作业,不然尽量不要让它一向运转。留意作业完成后履行中止service失利而商品的内存走漏。ztwgn5rk
发动一个service后,体系更喜爱保留service地点的进程继续运转,这会致使进程十分消耗资本,由于service运用的内存资本不行以被别的任何进程运用或许移出。Service也减少了进程LRU可用缓存的巨细,使得运用间切换功率更低。Service也也许在内存严重时致使体系波动,体系不可以保持满足的进程来承载一切当时运转的效劳。
最佳的约束service生命周期的方法是运用IntentService,他会在处理完发动它的intent后主动完毕。
保留一个不在需求的service运转时android运用开发中一个最差劲的过错,所以不要贪婪的保留service一向运转。不只会添加体系内存运用的危险,而且简单被用户发现而直接卸载。
2.在界面被躲藏时开释内存资本
当用户导航到不一样的运用时,而且当时运用的界面已经不行见,开发人员应当开释任何当时运用界面运用到的资本。此刻开释界面资本可以显着的提高体系的进程缓存容量,然后直接影响用户体会。
可以经过在Activity里完成onTrimMemory()回调来监听用户脱离你的运用界面的事情TRIM_MEMORY_UI_HIDDEN,事情代表了你的运用界面被躲藏而且你应当开释界面有关的资本。
留意完成onTrimMemory()回调只会在运用界面的悉数界面组件躲藏时得到告诉,这不一样于onStop()回调,onStop()只是在Activity实例变成躲藏时触发,及时运用内跳转到别的Activity时也会触发。所以完成onStop()来开释Activity的资本,如网络连接、broadcast receiver接触注册,不需求开释运用的界面资本直到接收到onTrimMemory(),所以用户从别的的Activity回来当时Activity时运用的ui资本依然存在并疾速呼应。
3.在内存资本严重时开释内存资本
onTrimMemory()除了包含运用界面因而的告诉外,还包含一些内存严重的告诉,你需求合理的呼应来开释有关资本(API level 14前需求运用onLowMemory()):
TRIM_MEMORY_RUNNING_MODERATE:你的运用在运转且不会被杀掉,但设备可用内存低,体系正在履行杀掉LRU缓存里的进程
TRIM_MEMORY_RUNNING_LOW:你的运用在运转且部会被杀掉,但设备可用内存过低,你也需求开释不再运用的资本来改善功能
TRIM_MEMORY_RUNNING_CRITICAL:你的运用在运转,但体系已经杀死了别的LRU缓存里的大多数进程,你需求马上开释一切不重要的资本。假如体系依然没有收回满足的资本,将会整理悉数的LRU缓存里的本来应当运转的进程,如哪些承载运转的service的进程。
TRIM_MEMORY_BACKGROUND:你的进程当时是后台被缓存的,体系运转在低内存,你的运用接近LRU缓存List的开始方位。尽管你的进程不是高危险被杀死的,可是体系也许已经杀死了LRU缓存里的有些进程。你应当开释你的运用里简单康复的资本来使得你的进程可以保留在缓存里。
TRIM_MEMORY_MODERATE:你的进程当时是后台被缓存的,体系运转在低内存,你的运用接近LRU缓存的中心方位,假如体系可用内存变得更差劲你的运用很也许被杀掉
TRIM_MEMORY_COMPLETE:你的进程当时是后台被缓存的,体系运转在低内存,假如体系可用内存无法康复,你的运用是需求被首要杀死的进程中的一个。你需求开释任何不是必需求的资本。等价于onLowMemory()
广州市港启信息科技有限公司【简称:港启软件】(SLT)成立于2012年,总部坐落广州市天河区棠下金棠大厦D20,
致力于为中国公司供给全部互联网电子商务处理方案,包含网站建造,移动手机APP开发、互联网营销推行效劳,是国内互联网职业知名品牌公司。
全国效劳热线020-29816913 020-29816912
安卓 开发 /