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);
    }

 

Android 优化 篇,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。