Android获取Context(任意位置任意地方,全局上下文)
一般获取context的方法
1.Activity.this的context
(一般用法)返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁
2.getApplicationContext()
返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁
3.getBaseContext()
返回由构造函数指定或setBaseContext()设置的上下文
4.getActivity()
多用于fragment中
但是问题来了!
一般方法在一般的地方都能获取,但是特殊的地方呢,上述情况都不太管用了,如工具类。但是有时过多时就会觉得过于频繁。那么有什么一劳永逸的方法,答案就是使用自定义Application。
废话少说,上干货!
自定义Application步骤:
1.写一个新的类继承Application,代码如:
/**
* Author: ZhouJianbin周健彬
*/
public class MyApplication extends Application {<span style="color:#cc7832;">private static </span>Context <span style="color:#9876aa;"><em>context</em></span><span style="color:#cc7832;">;
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
initXunFei();
}
/**
* 获取全局上下文*/
public static Context getContext() {
return context;
}
}
2.添加在manifest中<application>中加入android:name="MyApplication"
<application
android:name="MyApplication" >
3.然后使用只要需要context但又获取不得或获取麻烦的话,只要使用:
MyApplication.getContext()
注意:最好是在不得已的情况下使用上述方法来获取context,而不是只要用到context就使用MyApplication.getContext(),因为这涉及到View等存在生命周期的问题。如toast要用到的context就要使用Activvity.this,否则可能报错。(题外话:如果这么容易被代替,google又不是傻子,早就淘汰了)
转载请注明出处,谢谢!
Android获取Context(任意位置任意地方,全局上下文)的更多相关文章
- android获取Context
如果在Activity方法中,直接使用this. 如果在Activity内部类中,使用Activity.this
- 在任意位置获取应用程序CONTEXT
Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context, 而在某些工具类中要获 ...
- Android 全局获取 Context 与使用 Intent 传递对象
=====================全局获取 Context======================== Android 开发中很多地方需要用到 Context,比如弹出 Toast.启动活 ...
- Android 如何全局获取Context
有时,在处理业务逻辑的时候,需要Context对象,但在某些情况下,并非容易获取,这时就需要一些巧妙的手段来管理Context. 在Android中,提供了一个类Application,当应用程序启动 ...
- Android点击其他任意位置收起软键盘
在Android应用开发中,经常出现这样的需求,用户在输入文字的过程中,可能不想继续输入了,通过滑动或者点击其他位置(除软键盘和EditText以外的任何位置),希望能够自动收回键盘,这个功能可能有些 ...
- Android开发之全局获取Context的技巧
转自<第一行代码-Android>进阶篇 这本书对于入门来说确实很棒,很简单明了的介绍了Android开发中涉及到的方方面面,对我的帮助很大,同时记录一些该书中一些对我以后开发有用的东西, ...
- Android获取全局Context的方法
Android获取全局Context的方法 Android--应用全局获取Context - 超宇的博客 - CSDN博客https://blog.csdn.net/chaoyu168/article ...
- Android 获取全局Context的技巧
回想这么久以来我们所学的内容,你会发现有很多地方都需要用到Context,弹出Toast的时候需要.启动活动的时候需要.发送广播的时候需要.操作数据库的时候需要.使用通知的时候需要等等等等.或许目前你 ...
- android#全局获取Context的技巧
参考<第一行代码>——郭霖 回想这么久以来我们所学的内容,你会发现有很多地方都需要用到Context,弹出Toast的时候需要.启动活动的时候需要.发送广播的时候需要.操作数据库的时候需要 ...
随机推荐
- Ubuntu 12.04 64bit GCC交叉编译器制作 原创
...
- Linux常用命令及解析
基本日常命令 init 3 (进入命令行页面) steup (设置网络) exit (退出用户) pwd(查看当前所在目录) date(查看当前系统时间) 举例:(date +%Y-%m-%d)以年月 ...
- PAL相机
输入时钟:27M PCLK:54M SDRAM时钟:80M ADV7393时钟:27M 1024*768 60帧 65MHZ
- HDU 1556 Color the ball【算法的优化】
/* 解题思路:每次仅仅求解一開始的第一个数字,让第一个数字加一,最后的一个数字的后面一个数减一.我们能够想想,最后加的时候,就是加上前面一个数出现的次数和自己本身出现的次数. 解题人:lingnic ...
- 把git仓库从码云迁到github,及git常用命令
前言 刚开始建仓库的时候,因为网络的原因选择了国内的码云.后来又想换成github,毕竟平时github使用率比较高. 替换远程仓库地址方式如下: git remote set-url origin ...
- 如何获取已经安装到苹果手机上的App信息
//如何获取已经安装到苹果手机上的App信息? Is it possible to get the information (app icon, app name, app location) abo ...
- [WASM] Write to WebAssembly Memory from JavaScript
We write a function that converts a string to lowercase in WebAssembly, demonstrating how to set the ...
- 为什么一款优秀的移动工具类应用必须开发PCclient?
移动大潮气势汹汹,PC端似乎已经一条腿跨进了坟墓. 作为一个windows开发者.难免有些焦灼. windows真的已死吗?真的无用武之地了吗? 或许是人云亦云吧. 突然看到了这篇文章,感触颇深. 文 ...
- [array] leetCode-15. 3Sum-Medium
leetCode-15. 3Sum-Medium descrition Given an array S of n integers, are there elements a, b, c in S ...
- 7、UTF-8, Unicode, GB2312格式串转换之C语言版
(申明:此文章属于原创,若转载请表明作者和原处链接 ) /* author: wu.jian (吴剑) English name: Sword ...