全局获取Context的技巧(再也不要为获取Context而感到烦恼)

2023-10-27

前言:

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

定制自己的Application只需要继承Application就可以了。
public class MyApplication extends Application {


    private static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        //获取context
        mContext = getApplicationContext();
    }
    //创建一个静态的方法,以便获取context对象
    public static Context getContext(){
        return mContext;
    }
}

是不是很简单,当然还要修改Manifest中的内容,用以告诉程序启动时初始化Myapplication类,而不是Application类。下面我就用一个简单的实例来演示一下吧。

效果展现:


效果解释:我在MainActivity中的onCreate()方法中调用自定义的一个类中的方法,这个方法中有Toast()方法。

实现步骤:
1.自定义一个类继承Applicatioon类
public class MyApplication extends Application {


    private static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        //获取context
        mContext = getApplicationContext();
    }
    //创建一个静态的方法,以便获取context对象
    public static Context getContext(){
        return mContext;
    }
}
2.在Manifest添加一句语句:原因上面说过了
 <application
 //注意是完整的路劲,我这个是因为前面有一句:package="com.example.getcontexttest" 
        android:name=".util.MyApplication"
       ............
    </application>
3.自定义一个类,创建一个静态方法,用于验证:
public class GetContext {

    public static void toastNews(){

        Context context = MyApplication.getContext();
        Toast.makeText(context, "hello world", Toast.LENGTH_SHORT).show();


    }
}
最后调用这个方法:
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        GetContext.toastNews();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

全局获取Context的技巧(再也不要为获取Context而感到烦恼) 的相关文章

随机推荐

  • 简单搭建frp服务(服务端与客户端)

    记录搭建frp服务的过程 首先下载frp 本人使用的是0 22 0版本 其它版本可能不适用 可以通过wget命令进行下载 wget https github com fatedier frp releases download v0 22
  • ElacsticSearch中集合了分组、排序,求和,group by sort sum sum(A*B)

    最近做了一个项目 以前是mysql中 现在使用es进行查询 mysql的查询是 返回的结果是 1 字段求和的数据 2 字段相乘再求和在除数据 这个问题卡了一天 3 根据某个字段分组 4 根据某个字段排序 根据思路因为是求和 所以需要用到聚合
  • 消息 ByteBuf 详解

    Netty提供了ByteBuf来替代Java NIO的ByteBuffer缓冲区 以操纵内存缓冲区 与Java NIO的ByteBuffer相比 ByteBuf的优势如下 Pooling 池化 这点减少了内存复制和GC 提升了效率 复合缓冲
  • SpringBoot简介

    SpringBoot 第一部分 SpringBoot应用 相关概念 约定优于配置 约定优于配置 Convention over Configuration 又称按约定编程 是一种软件设计规范 本质上是对系统 类库或框架中一些东西假定一个大众
  • 微信小程序:以7天为周期,连续签到7天功能效果

    此功能以1 2 3 4 5 6 7这样为一周期 连续签到的功能 通过计算是否为整除7天计算 每7天后切换数目 从而改变周期表 本案例只是提供案例的基本操作 进一步涉及 每日用户集的监听 日历表 签到统计 连续签到 签到中断 后端数据处理 等
  • intellij idea 双击选中一个变量而不是单词

    在keymap 里搜索 select Word at caret 然后双击并在弹出选项里选add mouse shortcut 然后选double click 再在下面click pad 区域点一下 就可以和eclipse一样双击选中完整的
  • 查看权限linux文件权限

    查看权限 rw rw r 一共有10位数 其中 最前面那个 代表的是类型 中间那三个 rw 代表的是所有者 user 然后那三个 rw 代表的是组群 group 最后那三个 r 代表的是其他人 other 然后我再解释一下后面那9位数 r
  • 全国大学生软件测试大赛 Web性能测试--实例(一)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 Web性能测试 实例 一 咪咕音乐测试 一 测试范围 二 测试要求 step1 a 操作流程 i 进入到咪咕音乐页面 点击 歌手 ii 对歌手进行筛选操作 点击红框内的任意按
  • 学习笔记:基于Transformer的时间序列预测模型

    1 一些准备的说明 为了便于读者理解 笔者将采取一个盾构机掘进参数预测的实际项目进行Transformer模型的说明 此外 该贴更多用于本人的学习记录 适合于对Transformer模型已经有一定了解的读者 此此次外 不定期更新中 一些参考
  • mybatisPlus分页查询的配置类

    SpringBoot中分页查询的配置类 Configuration public class MybatisPlusConfig Bean public MybatisPlusInterceptor mybatisPlusIntercept
  • 计算机视觉服务系统

    tornado教程HTTP教程 Eureka教程Eureka1Eureka2
  • Colossal-AI的安装

    最近在学习stable diffusion model 但是这个模型成本比较高 作为低端学习者 借助colossal ai加速训练 即能满足显卡要求又能节约时间 Colossal AI 是一个集成的大规模深度学习系统 具有高效的并行化技术
  • 二叉树变成搜索二叉树

    给你一个普通的二叉树 把它变成搜索二叉树 要求不改变这个树的结构 例如 给你如下二叉树 10 2 7 8 4 结果是 8 4 10 2 7 思路 1 中序遍历该二叉树 把结果存在临时数组 arr 中 2 对 arr 进行排序 3 把 arr
  • C++(11):true_type, false_type

    true type和false type是integral constant实例化的别名 C 11 integral constant 风静如云的博客 CSDN博客 template
  • matlab机械手ikine函数,matlab机器人工具箱10.1(有函数说明)

    实例简介 机器人工具箱10 1版 有例子可以学习 希望对大家有所帮助 实例截图 核心代码 robot工具箱 V10 1有例子 robot工具箱10 1及例子 matlab robot V10 1工具箱 pdf rvctools common
  • OpenXml操作Word的一些操作总结.无word组件生成word.

    OpenXml相对于用MS提供的COM组件来生成WORD 有如下优势 1 相对于MS 的COM组件 因为版本带来的不兼容问题 及各种会生成WORD半途会崩溃的问题 2 对比填满一张30多页的WORD来说 包含图 表等 用COM组件来生成会占
  • 【笔记】AOE网与关键路径

    AOE网 关键路径 求关键路径的算法实现 AOE网是以边表示活动的有向无环网 在AOE网中 具有最大路径长度的路径称为关键路径 关键路径表示完成工程的最短工期 1 AOE网 AOE网是一个带权的有向无环图 其中用顶点表示事件 弧表示活动 权
  • PCL生成线段点云

    生成三角形 生成平行四边形 生成凸包 pcl 生成线段点云 pcl官方有生成球体 圆柱体 圆锥体的相关函数 似乎没有生成线段的函数 正好有需要 所以自己写了两个 分别是根据数量和步长生成 原理 原理很简单 已知两个三维点p1 p2 求出方向
  • vue中使用高德地图marker标记点的setLabel,在不同层级下控制显示隐藏

    vue中使用高德地图marker标记点的setLabel 在不同层级下控制显示隐藏 设置点标注的文本标签 marker setLabel offset new AMap Pixel 1 0 设置文本标注偏移量 content div nam
  • 全局获取Context的技巧(再也不要为获取Context而感到烦恼)

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