作者:silence鼬、2015年6月28日
在学习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); } }
上面代码添加了一个内部Map,和对应的访问方法,全局使用getApplication() 和App.getInstance()都可使用。
<p>版权声明:本文为博主原创文章,未经博主允许不得转载。</p>