我很困惑为什么我们要在android中使用attachbasecontext。如果有人能给我解释一下这句话的意思,那将是很大的帮助。

最佳答案

attachBaseContext函数是ContextWrapper类,它确保上下文只附加一次。ContextThemeWrapper应用程序或活动的主题作为其名称,该主题在android:theme文件中定义为AndroidManifest.xml
因为应用程序和服务都不需要主题,所以它们直接从ContextWrapper继承。在活动、应用程序和服务启动期间,每次都会创建一个新的contextimpl对象,该对象在context中实现函数。

public class ContextWrapper extends Context {
    Context mBase;

    public ContextWrapper(Context base) {
        mBase = base;
    }

    /**
     * Set the base context for this ContextWrapper.  All calls will then be
     * delegated to the base context.  Throws
     * IllegalStateException if a base context has already been set.
     *
     * @param base The new base context for this wrapper.
     */
    protected void attachBaseContext(Context base) {
        if (mBase != null) {
            throw new IllegalStateException("Base context already set");
        }
        mBase = base;
    }

}

更多关于have lookthis.

关于android - attachBaseContext的作用是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51759985/

10-09 15:57