Android :第一行安卓代码学习笔记之 全局获取 Context

Posted JMW1407

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android :第一行安卓代码学习笔记之 全局获取 Context相关的知识,希望对你有一定的参考价值。

全局获取 Context

全局获取 Context

android 开发中很多地方需要用到 Context,比如弹出 Toast、启动活动、发送广播、操作数据库……

由于很多操作都是在活动中进行的,而活动本身就是一个 Context 对象,所以获取 Context 并不是那么困难。

但是,当应用程序的架构逐渐开始复杂起来的时候,很多的逻辑代码都将脱离 Activity 类,由此在某些情况下,获取 Context 并非那么容易。

Android 提供了一个 Application 类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。而我们可以定制一个自己的 Application 类,以便管理程序内一些全局的状态信息,比如说全局 Context。

解决办法:
创建一个MyApplication类继承Applicationle类

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

这里我们重写了父类的 onCreate( )方法,并通过调用 getApplicationContext( )方法得到了一个应用程序级别的 Context,然后又提供了一个静态的 getContext( )方法,在这里将刚才获取到的 Context 进行返回。

接下来需要告知系统,当程序启动的时候应该初始化 MyApplication 类,在 AndroidManifest 文件的标签下进行指定就可以了。

    <application
        android:name=".MyApplication"

这样就已经实现了一种全局获取 Context 的机制,之后不管你想在项目的任何地方使用 Context,只需要调用一下 MyApplication.getContext( )就可以了。

Toast.makeText(MyApplication.getContext(),"全局Context获取成功",Toast.LENGTH_SHORT).show();

参考

1、如何在Adapter中优雅的使用Context
2、Carson带你学Android:如何理解 Context对于Activity的意义?

以上是关于Android :第一行安卓代码学习笔记之 全局获取 Context的主要内容,如果未能解决你的问题,请参考以下文章

Android :安卓第一行代码学习笔记之 material design简单理解和使用

Android :安卓第一行代码学习笔记之 解析LifeCycle 的简单理解和使用

Android :安卓第一行代码学习笔记之 ViewModel组件的简单理解和使用

Android:安卓学习笔记之MVP模式的简单理解和使用

Android:安卓学习笔记之MVP模式的简单理解和使用

Android:安卓学习笔记之MVP模式的简单理解和使用