我爱编程

Android Context

2018-04-12  本文已影响0人  DwMin

Application本身就是一个Context

getApplication(),getApplicationContext()

getApplicationContext()得到的结果就是MyApplication本身的实例

getApplication()方法的语义性非常强,一看就知道是用来获取Application实例的,但是这个方法只有在Activity和Service中才能调用的到。那么也许在绝大多数情况下我们都是在Activity或者Service中使用Application的,但是如果在一些其它的场景,比如BroadcastReceiver中也想获得Application的实例,这时就可以借助getApplicationContext()方法了。

如果真的想要提供一个获取MyApplication实例的方法,比较标准的写法又是什么样的呢?其实这里我们只需谨记一点,Application全局只有一个,它本身就已经是单例了,无需再用单例模式去为它做多重实例保护了,代码如下所示:

public class MyApplication extends Application {

private static MyApplication app;  
  
public static MyApplication getInstance() {  
    return app;  
}  
@Override  
public void onCreate() {  
    super.onCreate();  
    app = this;  
}     

}

上一篇下一篇

猜你喜欢

热点阅读