在学习Android的时候一直未context的问题觉得头疼,因为想做一些工具类,但是又不是四大组件,总要来回传递context,觉得很麻烦,就想全局获取,最后看到application是全局单例的,所以改造一下。
首先需要重写Application,主要重写里面的onCreate方法,就是创建的时候,初始化一个Map,这样就可以插入任意值。然后在整个应用中的各个文件中就可以对该变量进行操作了。
在程序中有两种获得方式getInstance() 和 在四大组件中通过 getApplication() 分别获得app
package com.xin.app;
import java.util.HashMap;
import java.util.Map;
import android.app.Application;
import android.util.Log;
/**
*
* @author silence鼬
* @url http://write.blog.csdn.net/mdeditor#!postId=46674445
* @tip 欢迎转载
*
*/
public class App extends Application {
private static App instance;
private Map innerMap = new HashMap();
@Override
public void onCreate() {
super.onCreate();
instance = this;//注意这里,不是常用的单例方式
}
public static App getInstance(){
Log.v("app", "getInstance instance "+instance.toString());
return instance;
}
public void addParam(Object key,Object value){
innerMap.put(key, value);
}
public Object getParam(Object key){
return innerMap.get(key);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
上面代码添加了一个内部Map,和对应的访问方法,全局使用getApplication() 和App.getInstance()都可使用
————————————————
版权声明:本文为CSDN博主「香菜聊游戏」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/perfect2011/article/details/46674445