全局获取Context的技巧
2016-02-04 08:24
190 查看
全局获取Context的技巧
在android开发中,非常多地方都要用到Context上下文这个类对象,比方:弹出 Toast
的时候须要、启动活动的时候须要、发送广播的时候须要、操作数据库的时候须要、使用通
知的时候须要等。
假设是在Activity中,那么获取这个context对象非常easy,由于Activity本身就继承Context。直接受用this就能够了。
可是对于比較复杂的逻辑,这些代码没有放在Activity中。那么。获取Context就显得不是那么easy了。
这里告诉大家一个技巧:
Android 提供了一个 Application 类。每当应用程序启动的时候,系统就会自己主动将这个类
进行初始化。
而我们能够定制一个自己的 Application 类, 以便于管理程序内一些全局的状态信息,比方说全局 Context。
1,新建一个类MyApplication继承Application.
代码例如以下:
2,在 AndroidManifest.xml 文件的<application>标签下进行指定就能够了,代码例如以下所看到的:
注意:指定 MyApplication 的时候一定要加上完整的包名,不然系统将无法找到这
个类。
这样我们就已经实现了一种全局获取 Context的机制,之后无论你想在项目的不论什么地方
使用 Context,仅仅须要调用一下 MyApplication.getContext()就能够了。
在android开发中,非常多地方都要用到Context上下文这个类对象,比方:弹出 Toast
的时候须要、启动活动的时候须要、发送广播的时候须要、操作数据库的时候须要、使用通
知的时候须要等。
假设是在Activity中,那么获取这个context对象非常easy,由于Activity本身就继承Context。直接受用this就能够了。
可是对于比較复杂的逻辑,这些代码没有放在Activity中。那么。获取Context就显得不是那么easy了。
这里告诉大家一个技巧:
Android 提供了一个 Application 类。每当应用程序启动的时候,系统就会自己主动将这个类
进行初始化。
而我们能够定制一个自己的 Application 类, 以便于管理程序内一些全局的状态信息,比方说全局 Context。
1,新建一个类MyApplication继承Application.
代码例如以下:
package com.example.networktest; public class MyApplication extends Application { private static Context context; @Override public void onCreate() { context = getApplicationContext(); } public static Context getContext() { return context; } }
2,在 AndroidManifest.xml 文件的<application>标签下进行指定就能够了,代码例如以下所看到的:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.networktest" android:versionCode="1" android:versionName="1.0" > …… <application android:name="com.example.networktest.MyApplication" …… > …… </application> </manifest>
注意:指定 MyApplication 的时候一定要加上完整的包名,不然系统将无法找到这
个类。
这样我们就已经实现了一种全局获取 Context的机制,之后无论你想在项目的不论什么地方
使用 Context,仅仅须要调用一下 MyApplication.getContext()就能够了。
相关文章推荐
- [.net 面向对象程序设计进阶] (24) 团队开发利器(三)使用SVN多分支并行开发(下)
- Linux启动流程
- 使用Pelican在Github(国外)和Gitcafe(国内)同步托管博客
- 最优矩阵链乘
- Ubuntu下安装MySQL 5.6.23
- office 2010 你或管理员选择不安装宏或控件
- nodejs 更新本地 node_modules
- waitpid传入参数
- BZOJ 4282: 慎二的随机数列|动态规划
- JDK8 Stream API 学习
- Pelican+Github博客搭建详细教程
- 存储圈老炮大战小鲜肉
- Cmake常用指令
- OpenGL ES 着色语言
- Pelican+Github博客搭建详细教程
- 云安全
- C++ 程序设计 week5 魔兽世界二: 装备
- 【Android】3.5 示例5--多地图展示
- BadNeighbors
- Greatest Common Divisor 最大公约数 O(n)