安卓 Context 和 Application的关系
Posted hello word
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓 Context 和 Application的关系相关的知识,希望对你有一定的参考价值。
1. 我开始一直不理解显式Intent中传一个this(当前的activity)是为什么。因为Intent里面的构造方法对应的只有 Context, Class。后面查资料才发现
Intent i = new Intent(this, AnotherAty.class); // 在activity里面调用。
public Intent(Context packageContext, Class<?> cls) { mComponent = new ComponentName(packageContext, cls); }
是因为 activity都继承了 android.content.Context。下面是官方的解释。
关于应用程序环境的全局信息的接口。这是一个抽象类,它的实现是由安卓系统提供的。它允许访问应用程序特定的资源和类,以及应用级的操作,如启动活动,电话,广播和接收的意图,等等。
其实说白了就是上下文,可以获取全局资源。(刚刚学到这里,其他的方法可以取查手册)
this.getResources().getString("app_name"); // activity调用可以获取到全局的 app_name 定义的值
2. android.app.Application 类
需要维护全局应用程序状态的基类。你可以通过在你的androidManifest.xml指定其名称提供自己的实现。XML <application>标签,这将导致这类被实例化时为您为您的应用程序/包创建过程。
例如你定义了一个全局类, App继承了Application , 那么你要到 XML <application>标签 中设置 android:name=".App"
这样你的所有的activity都可以共享这个App类了。 其实每个activity也是继承了这个Application类。 同时Application类也继承了 Context类
App app = (App)this.getApplicationContext(); // 在activity中调用 里面肯定有 getResources()方法
ps: 刚刚学习,记录一点。 以后有更好的心得在更新
以上是关于安卓 Context 和 Application的关系的主要内容,如果未能解决你的问题,请参考以下文章
Application中的 Context 和 Activity 中的Context区别
cshtml 中的 AppState = Context.Application 和 控制器中的 Application 也相等
Android-Android中service与application的生命周期有关系吗