关于Android的Context

一、Contxet解析
1、郭霖Android Context完全解析
2、改写Context
3、Context博客
二、全局获取Context的技巧
Android提供了一个Application类,每当应用程序启动时,系统会自动将这个类初始化,通过自定义一个MyApplication类可以便于管理程序内一些全局的状态信息,如全局Context
具体使用步骤如下:
1、自定义MyApplication类

		public class MyApplication extends Application {
    
    
		    private static Context context;
		
		    @Override
		    public void onCreate() {
    
    
		        super.onCreate();
		        context = getApplicationContext();
		        //调用getApplicationContext()方法获取一个应用程序级别的Context
		    }
		    public static Context getContext(){
    
    
		        return context;
		    }
		}

2、在注册文件下进行指定

 <application
        android:name=".MyApplication"
        .....
 </application>

3、在指定位置获取实例

public class HttpUtil {
    
    
    public static void sendHttpRequest(final String address,final HttpCallbackListener listener){
    
    
        if (!isNetwork()){
    
    
            Toast.makeText(MyApplication.getContext(),"network is unavailable",Toast.LENGTH_SHORT).show();
            return;
        }
        ...
    private static boolean isNetwork(){
    
    
        //具体执行逻辑
        return true;
    }
}

4、注意:由于任何一个项目都只能配置一个Application,因此对于Litepal就不能如下方法
在这里插入图片描述
可以在MyApplication中的onCreate()方法中进行初始化

		public class MyApplication extends Application {
    
    
		    private static Context context;
		
		    @Override
		    public void onCreate() {
    
    
		        super.onCreate();
		        context = getApplicationContext();
		        LitePal.initialize(context);
		    }
		    public static Context getContext(){
    
    
		        return context;
		    }
		}

Guess you like

Origin blog.csdn.net/Cristiano_san/article/details/120233755