全局获取Context的技巧
在android开发中,非常多地方都要用到Context上下文这个类对象,比方:弹出 Toast
的时候须要、启动活动的时候须要、发送广播的时候须要、操作数据库的时候须要、使用通
知的时候须要等。
假设是在Activity中,那么获取这个context对象非常easy,由于Activity本身就继承Context。直接受用this就能够了。
可是对于比較复杂的逻辑,这些代码没有放在Activity中。那么。获取Context就显得不是那么easy了。
这里告诉大家一个技巧:
Android 提供了一个 Application 类。每当应用程序启动的时候,系统就会自己主动将这个类
进行初始化。
而我们能够定制一个自己的 Application 类, 以便于管理程序内一些全局的状态信息,比方说全局 Context。
1,新建一个类MyApplication继承Application.
代码例如以下:
package com.example.networktest; public class MyApplication extends Application { private static Context context; @Override public void onCreate() { context = getApplicationContext(); } public static Context getContext() { return context; } }
2,在 AndroidManifest.xml 文件的<application>标签下进行指定就能够了,代码例如以下所看到的:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.networktest" android:versionCode="1" android:versionName="1.0" > …… <application android:name="com.example.networktest.MyApplication" …… > …… </application> </manifest>
注意:指定 MyApplication 的时候一定要加上完整的包名,不然系统将无法找到这
个类。
这样我们就已经实现了一种全局获取 Context的机制,之后无论你想在项目的不论什么地方
使用 Context,仅仅须要调用一下 MyApplication.getContext()就能够了。