Android开发之获取全局context技巧
来源:互联网 发布:java 设计通用api接口 编辑:程序博客网 时间:2024/05/16 07:55
前言
对于一个android开发者来说,context一定不会陌生。
通常情况下,我们再需要context的方法中,传入context参数即可。然而,以面向对象的思维来编程,这并不是一个很好的做法,将责任推卸给调用者,不但增加了调用者的负担,也让开发者对于方法的理解构成障碍。
接下来我们将介绍一种更好的实现方法,以便让你在项目的任何地方都能够轻松获取context。
Android提供了Application类,每当应用启动的时候,系统会自动将这个类进行初始化。我们可以定制一个自己的Application类,以便管理app中一些全局的状态信息,比如说全局的context.
定制自己的Application类
创建一个MyApplication类继承自Application,代码如下:
import android.app.Application;import android.content.Context;/** * <p> * 此类用来初始化应用中通用的信息 * </p> * * @author jiangbing * */public class MyApplication extends Application { /** The global context */ private static Context mContext; @Override public void onCreate() { super.onCreate(); // TODO // Here, you can initialize some global infos ... // 1.init context mContext = getApplicationContext(); } /** * You can get the context anywhere. * * @return Context 全局context */ public static Context getContext() { return mContext; }}
可以看到,MyApplication 中的代码非常简单。这里我们重写了父类的 onCreate()方法,并通过调用 getApplicationContext()方法得到了一个应用程序级别的 Context,然后又提供了一个静态的 getContext()方法,在这里将刚才获取到的 Context 进行返回。
接下来我们需要告知系统,当程序启动的时候应该初始化 MyApplication 类,而不是默认的 Application 类。这一步也很简单,在 AndroidManifest.xml 文件的标签下进行指定就可以了,代码如下所示:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test" android:versionCode="1" android:versionName="1.0" > …… <application android:name="com.example.test.MyApplication" …… > …… </application> </manifest>
接下来,我们就可以在任何需要context调用即可:
MyApplication.getContext();
0 0
- Android开发之获取全局context技巧
- 从头开发技巧之全局获取Context
- Android之全局获取 Context 的技巧
- Android开发实用技巧之一:全局获取Context的技巧
- Android 编程技巧之 ----- 获取全局 Context 对象
- Android进阶之全局获取Context的技巧01
- Android--全局获取Context的技巧
- Android中获取全局的Context技巧
- android全局获取Context的技巧
- Android 获取全局Context的技巧
- Android应用全局获取Context的技巧
- Android 获取全局Context的技巧
- 全局获取Context技巧
- android 获取全局context
- Android全局获取Context
- android 获取全局context
- Android全局获取Context
- Android---全局获取Context
- Linux ALSA声卡驱动之三:PCM设备的创建
- 数据库基本知识
- leetcode176---Second Highest Salary
- iOS---开发技巧(系列十五:autolayout自动布局)
- android中的webview进度条
- Android开发之获取全局context技巧
- 示例详解:UIScrollview 与 Autolayout 的那点事
- XML 特殊字符 转义
- Linux ALSA声卡驱动之四:Control设备的创建
- tomcat 默认web jndi配置
- java注解
- 筛选100万以内的素数
- 代码阅读笔记——vl_nncrop
- Floodlight控制器创建一个模块的简单过程