首页 > 代码库 > Android 优化 篇

Android 优化 篇

 

 

Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析

 

1. 能用 Application  的 上下文 就用。 因为如果用 Activity 的 Context ,如果用太多的 Activity, 如果 有些资源 还在引用 Activity的context的资源,会导致 这个 Activity 没有被回收,有可能导致 oom、

 

2. bitmap 回收

 

3. Dialog 用完之后, dismiss 之后,设为 null。

 

4. 图片不要做内存缓存,可以做磁盘缓存。 例如 Volley 的 下载图片。 做磁盘缓存

 

源码分析:

    protected void onDestroy() {        if (DEBUG_LIFECYCLE) Slog.v(TAG, "onDestroy " + this);        mCalled = true;        // dismiss any dialogs we are managing.        if (mManagedDialogs != null) {            final int numDialogs = mManagedDialogs.size();            for (int i = 0; i < numDialogs; i++) {                final ManagedDialog md = mManagedDialogs.valueAt(i);                if (md.mDialog.isShowing()) {                    md.mDialog.dismiss();                }            }            mManagedDialogs = null;        }        // close any cursors we are managing.        synchronized (mManagedCursors) {            int numCursors = mManagedCursors.size();            for (int i = 0; i < numCursors; i++) {                ManagedCursor c = mManagedCursors.get(i);                if (c != null) {                    c.mCursor.close();                }            }            mManagedCursors.clear();        }        // Close any open search dialog        if (mSearchManager != null) {            mSearchManager.stopSearch();        }        getApplication().dispatchActivityDestroyed(this);    }