全局获取Context的技巧

全局获取Context的技巧

 

在android开发中,很多地方都要用到Context上下文这个类对象,比如:弹出 Toast

的时候需要、启动活动的时候需要、发送广播的时候需要、操作数据库的时候需要、使用通

知的时候需要等。

 

如果是在Activity中,那么获取这个context对象很容易,因为Activity本身就继承Context,直接受用this就可以了。

 

但是对于比较复杂的逻辑,这些代码没有放在Activity中,那么,获取Context就显得不是那么容易了。

 

这里告诉大家一个技巧:

Android 提供了一个 Application 类,每当应用程序启动的时候,系统就会自动将这个类

进行初始化。 而我们可以定制一个自己的 Application 类, 以便于管理程序内一些全局的状态信息,比如说全局 Context。

1,新建一个类MyApplication继承Application.

代码如下:

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. package com.example.networktest;  
  2. public class MyApplication extends Application {  
  3.     private static Context context;  
  4.     @Override  
  5.     public void onCreate() {  
  6.         context = getApplicationContext();  
  7.     }  
  8.     public static Context getContext() {  
  9.         return context;  
  10.     }  
  11. }  

 

 

2,在 AndroidManifest.xml 文件的<application>标签下进行指定就可以了,代码如下所示:

 

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  2. package="com.example.networktest"  
  3. android:versionCode="1"  
  4. android:versionName="1.0" >  
  5. ……  
  6. <application  
  7. android:name="com.example.networktest.MyApplication"  
  8. …… >  
  9. ……  
  10. </application>  
  11. </manifest>  

 

 

注意:指定 MyApplication 的时候一定要加上完整的包名,不然系统将无法找到这

个类。

 

这样我们就已经实现了一种全局获取 Context的机制,之后不管你想在项目的任何地方

使用 Context,只需要调用一下 MyApplication.getContext()就可以了。

posted @ 2016-03-15 16:33  代码缔造的帝国  阅读(164)  评论(0编辑  收藏  举报