脚本宝典收集整理的这篇文章主要介绍了Android 学习系列 - Application,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
AndROId Application
关于
安卓运行的时候会为每一个应用创建一个Application 类的对象,单例,每一个Application在一个单独的进程中运行。app 会存储系统相关的信息。
通常我们是不需要指定一个Application的,系统会自动帮我们创建,如果需要创建自己的Application,那也很简单!创建一个类继承Application并在AndroidManifest.XMl文件中的application标签中进行注册
app 里边的所有activITy都会在这个进程上上运行。 app 里边定义的全局变量共享给所有activity。
Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以可以通过Application来进行一些,如:数据传递、数据共享和数据缓存等操作。
sample
<!-- 默认Application设置成自定义的CustomApplication -->
<application
android:name="CustomApplication">
<activity
android:name=".FirstActivity"
android:label="@string/app_name">
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
public class MyApplication extends Application {
private static MyApplication singleton;
private String val;
// 单例模式
public static MyApplication getInstance() {
return singleton;
}
@Override
public void onCreate() {
super.onCreate();
singleton = this;
// 直到所有的activity都被kill,Application才会被销毁
// 所以这里的变量会直到最后才会被销毁
setValue('global varaibale');
}
public void setValue(String val) {
this.val = val;
}
}
public class MyActivity entends Activity {
private MyApplication app;
@Override
public void onCreate(Bundle saveInstanceState) {
super.onCreate(saveInstanceState);
setContentView(R.layout.main);
// activity 中获取app 对象
app = (MyApplication) getApplication();
}
}
app 的进程状态
android控制内存管理和进程的管理,app 任何时候都可能被kill掉,kill 的优先级由app的组件的优先级以及app间相互依赖的关系决定。
优先级决定等级树
-
-
Visible Process (High Priority)
通常为可见但是没交互的activity
Started Service Process (High Priority)
Background Process (Low Priority)
Empty Process (Low Priority)
app 处理onCreate 以外的其他状态函数
以上是脚本宝典为你收集整理的Android 学习系列 - Application全部内容,希望文章能够帮你解决Android 学习系列 - Application所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。