Android开发

Android内存优化 -- 内存管理 onTrimMemory

2018-02-07  本文已影响86人  Passon_Fang

原文地址: https://mp.weixin.qq.com/s?__biz=MzIxNjc0ODExMA==&mid=2247484311&idx=1&sn=1fe0416bed4137dd45c6e9c153bb14f4&chksm=97851ab6a0f293a0cde28ff6d1091b2232e1758e9845a05549d01c62f412def742985d642630&scene=21#wechat_redirect

前言

LowMemoryKiller 策略:App 退出到后台之后不占用 cpu 资源但是任然会占用内存空间。当系统内存不足的时候,会按照优先级清理进程。

App 将内存使用降低可以提高优先级,实现不被系统回收的功能。

onTrimMemory

作用

通过 onTrimMemory 实现对 App 内存的简单管理。

onTrimMemory:Android 4.0 之后提供的 API,作用是提醒开发者系统内存不足了。

public void onTrimMemory(int level)

onTrimmemory 参数的意义

level 分三类:

  1. UI 在后台
  2. App 在前台运行
  3. App 在后台,在 Cached 状态下

哪些组件可以监听 onTrimMemory

通常会在 Application 中监听

自定义 noTrimMemory 监听

    public void registerComponentCallbacks() {
        synchronized (mTrimMemoryCallback) {
            this.registerComponentCallbacks(mTrimMemoryCallback);
        }
    }

    public void unregisterComponentCallbacks() {
        synchronized (mTrimMemoryCallback) {
            this.unregisterComponentCallbacks(mTrimMemoryCallback);
        }
    }

    public ComponentCallbacks2 mTrimMemoryCallback = new ComponentCallbacks2(){

        @Override
        public void onConfigurationChanged(Configuration newConfig) {

        }

        @Override
        public void onLowMemory() {

        }

        @Override
        public void onTrimMemory(int level) {
            
        }
    };

onTrimMemory 的一些思考

通过这个实现 应用退到后台 的事件捕获

上一篇下一篇

猜你喜欢

热点阅读