说说在 Android 如何在全局获取 Context

1,539 阅读1分钟

Android 提供了一个 Application 类,每当应用启动时,系统就会初始化该类。我们可以定制一个基础的 Application 类,以便管理应用内的一些全局信息。

定义 BaseApplication:

public class BaseApplication extends Application {

    private static Context context;

    @Override
    public void onCreate() {
        context = getApplicationContext();
    }

    public static Context getContext() {
        return context;
    }
}

配置:

AndroidManifest.xml

<application
	android:name="net.deniro.android.materialdesigntest.BaseApplication"
	...">
	...
</application>

这样就可以在任意地方愉快地获取 Context 啦 :

Toast.makeText(BaseApplication.getContext(), "点击了新增按钮", Toast.LENGTH_SHORT).show();

因为一个项目只能配置一个 Application,所以当引用的第三方库有自己的 XXXApplication 时,我们可以在 BaseApplication 中去调用第三方库的初始化方法,这样它们就可以和谐共处啦O(∩_∩)O~