以下为up主阅读郭大神《第一行代码》后整理的笔记:

我们都知道活动本身就是一个Context对象,但是,当应用程序构架复杂起来的时候,很多的逻辑代码都会脱离Activity类,

而很多时候我们在这些逻辑类中又要使用到上下文对象Context,这时,我们只要通过下面的技巧就可以解决该问题,在

项目的任何地方都能获取到Context了。

1.定制自己的Application类

Android提供了一个Application类,每当程序启动的时候,系统就会自动将这个类进行初始化。我们可以通过继承Application

类去定制一个自己的Application类,以方便管理程序内如全局Context等全局状态信息

public class MyApplication extends Application {private static Context context;@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();context=getApplicationContext();}public static Context getContext() {return context;}
}

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

在AndroidMainifest文件中的<application>标签下进行指定

2.在AndroidManifest.xml中指定启动的时候初始化MyApplication类,而不是默认的Applicationl类

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  package="com.example.administrator.hellowworld" >  <application  android:name="com.crazyfzw.example.MyApplication"  ...>  ....  </application>
</manifest>  

注意:指定MyApplication的时候一定要加上完整的包名。

3.接下来就可以在不能直接获取到Context的地方通过使用以下一行代码就可轻松获取到Context了。

MyApplication.getContext()  

全局获取Context的技巧相关推荐

  1. Android开发实用技巧之一:全局获取Context的技巧

    以下为up主阅读郭大神<第一行代码>后整理的笔记: 我们都知道活动本身就是一个Context对象,但是,当应用程序构架复杂起来的时候,很多的逻辑代码都会脱离Activity类, 而很多时候 ...

  2. 一种 Android 应用内全局获取 Context 实例的装置

    哥白尼 · 罗斯福 · 马丁路德 · 李开复 · 嫁衣曾经说过 Where there is an Android App, there is an Application context. 没毛病, ...

  3. android 获取全局context,说说 Android 中如何在全局获取 Context

    Android 提供了一个 Application 类,每当应用启动时,系统就会初始化该类.我们可以定制一个基础的 Application 类,以便管理应用内的一些全局信息. 定义 BaseAppli ...

  4. android获取context的方法,Android编程获取全局Context的方法

    Android编程获取全局Context的方法 本文实例讲述了Android编程获取全局Context的方法.分享给大家供大家参考,具体如下: 有时,在处理业务逻辑的时候,需要Context对象,但在 ...

  5. 通过ActivityThread获取Context

    背景 为了保存一个全局可用的ApplicationContext对象,通过反射ActivityThread.currentActivityThread()来实现.近期在分析线上错误日志时,偶有发现这里 ...

  6. ViewModel优雅的弹加载窗和获取Context

    前言 目前安卓开发一般都是用的mvvm模式,Jetpack的ViewModel是必不可少的一部分,而vm的生命周期要比Activity和Fragment长的,所以其一般不推荐其直接持有A或F,因为可能 ...

  7. Android中怎样在工具类中获取Context对象

    场景 Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context对象, 如果在编写 ...

  8. [react] 除了实例的属性可以获取Context外哪些地方还能直接获取Context呢?

    [react] 除了实例的属性可以获取Context外哪些地方还能直接获取Context呢? Context = React.createContext <Context.Provider va ...

  9. 获取context path或者basePath

    转自:http://hexudonghot.blog.163.com/blog/static/532043422012112264411234/ 在jsp中获取context path或者basePa ...

最新文章

  1. 设计模式:单例模式之静态内部类
  2. 14行代码AC_Break the Chocolate HDU-4112(数学推导+解析)
  3. 长隆大马戏机器人_惊艳亮相广州长隆,智伴儿童机器人1X成行业焦点
  4. JS实现css属性动画效果
  5. qmediaplayer获取流类型_Java 流API
  6. python举两种字符串引号的例子_python里的单引号和双引号的有什么作用
  7. c语言不能在函数中求数组大小,C语言中数组长度不能用变量定义吗?
  8. Go1.18 新特性:多 Module 工作区模式
  9. .NET Core 3.0 Preview 7 已经发布
  10. Ajax的load方法
  11. PayPal支付开发
  12. 纽约亮马河邮轮 - 从水上欣赏纽约迷人景色
  13. 云计算未来 — 云原生
  14. sql-lab 通关Less1 -65(深入学习)
  15. nginx - nginx的安装部署
  16. matlab不是内部或外部命令_如何解决Telnet不是内部或外部命令(电脑提示telnet不是内部或外部命令...
  17. PHP 导出到Excel表格中
  18. MySQL 数据(字段)类型
  19. flask-migrate(flask_script与flask2.0不再兼容)
  20. 【Python爬虫】爬取2022软科全国大学排行榜

热门文章

  1. 利用python实现两个文件夹的同步
  2. linux程序后台运行详解
  3. 2023第十届大唐杯省赛心得体会总结
  4. mysql的reorg_DB2 runstats和reorg操作
  5. oracle reorg的意义,Oracle Reorg 的形式与相关的script - 2016-02-26
  6. 腾讯QQ的验证码,很黄很暴力
  7. 【数据库】MySQL
  8. 图片转换为base64编码后,实现无图片展示图片
  9. 【CAN总线在汽车行业中的基础应用】
  10. stm32F103C8T6控制DHT11