摘要:

1. Application的使用

2. Application的生命周期

----------------------------------------------------

工程代码:LearnContext.zip

----------------------------------------------------

1. Application的使用

多个组件之间数据共享

举例:两个Activity之间数据共享

Application 对同一个应用程序是唯一的,所以可以使用Application进行数据共享

定义两个Activity:  MainActivity.java 和 MainActivity2.java, 代码是一样的

TextView tv;
EditText et;@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//setContentView(R.layout.activity_main_activity2);setContentView(R.layout.activity_main2);tv = (TextView) findViewById(R.id.tv);et = (EditText) findViewById(R.id.et);tv.setText("共享数据:" + getApp().getTextData());findViewById(R.id.btnTextData).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {getApp().setTextData(et.getText().toString());tv.setText("共享数据:" + et.getText().toString());}});
}public App getApp() {return ((App)getApplicationContext());
}

定义一个类App,集成Application

public class App extends Application {private String textData = "default";public void setTextData(String textData) {this.textData = textData;}public String getTextData() {return textData;}
}

修改AndroidManifest.xml文件, 使用自定义的Application,两个Activity都是入口:

<applicationandroid:name="com.carloz.learnapplication.App"android:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activityandroid:name="com.carloz.learnapplication.MainActivity2"android:label="@string/title_activity_main_activity2" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
</application>

结果,在一个Activity修改App的数据,在另一个Activity都能获取到

2. Application的生命周期

给应用程序配置,自定义的Application,然后在Application的生命周期中做一些操作

Application生命周期

public class App extends Application {@Overridepublic void onCreate() {// 程序创建的时候执行Log.d(TAG, "onCreate");super.onCreate();}@Overridepublic void onTerminate() {// 程序终止的时候执行Log.d(TAG, "onTerminate");super.onTerminate();}@Overridepublic void onLowMemory() {// 低内存的时候执行Log.d(TAG, "onLowMemory");super.onLowMemory();}@Overridepublic void onTrimMemory(int level) {// 程序在内存清理的时候执行Log.d(TAG, "onTrimMemory");super.onTrimMemory(level);}@Overridepublic void onConfigurationChanged(Configuration newConfig) {Log.d(TAG, "onConfigurationChanged");super.onConfigurationChanged(newConfig);}}

打开Activity
08-16 15:16:27.142: D/CARLOZ - Application(28202): onCreate
08-16 15:16:27.172: D/CARLOZ - MainActivity3(28202): onCreate
08-16 15:16:27.232: D/CARLOZ - MainActivity3(28202): onStart
08-16 15:16:27.232: D/CARLOZ - MainActivity3(28202): onResume
HOME键退出应用程序
08-16 15:16:55.372: D/CARLOZ - MainActivity3(28202): onPause
08-16 15:16:55.942: D/CARLOZ - MainActivity3(28202): onStop
08-16 15:16:55.952: D/CARLOZ - Application(28202): onTrimMemory    回收内存
重新打开应用程序
08-16 15:17:20.962: D/CARLOZ - MainActivity3(28202): onRestart
08-16 15:17:20.962: D/CARLOZ - MainActivity3(28202): onStart
08-16 15:17:20.962: D/CARLOZ - MainActivity3(28202): onResume
长按MENU键,打开Recent TASK
08-16 15:17:28.972: D/CARLOZ - MainActivity3(28202): onPause
08-16 15:17:28.992: D/CARLOZ - MainActivity3(28202): onStop
08-16 15:17:29.022: D/CARLOZ - Application(28202): onTrimMemory
彻底关闭应用程序
08-16 15:17:31.542: D/CARLOZ - MainActivity3(28202): onDestroy

--------------------------------------------------------------

工程代码:LearnContext.zip

转载于:https://www.cnblogs.com/Free-Thinker/p/5457646.html

Android Application的使用及其生命周期相关推荐

  1. Android四大基本组件和生命周期的介绍

    Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity ...

  2. Android组件系列----Activity的生命周期

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  3. android mvvm livedata_再谈Android应用架构——Jetpack VS 生命周期

    前面我们对MVC.MVP.MVVM进行了详尽的分析,但还有一个问题悬而未决,那就是生命周期.在Android平台上生命周期具有十分重要的意义,因此这也是架构必须考虑的因素之一.生命周期处理不好很容易发 ...

  4. android启动服务的生命周期,android Service启动运行服务 生命周期

    Service Android中的service类似于windows中的service,service一般没有用户操作界面,它运行于系统中不容易被用户发觉, 可以使用它开发如监控之类的程序. 一.步骤 ...

  5. 7.Android的学习(活动的生命周期以及小例子)

    Android活动的生命周期 Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack). 每个活动在其生命周期最多可能会有 ...

  6. 你还在问android横竖屏切换的生命周期?

    本文原创,转载请注明来自xiaoQLu http://www.cnblogs.com/xiaoQLu/p/3324503.html 开源帮助android获得了飞速的发展,开源也导致了数不清的碎片问题 ...

  7. Android横竖屏切换的生命周期

    关于Android手机横竖屏切换时Activity的生命周期问题,网上有很多相似的文章,大多数都是说明在竖屏切换横屏时Activity会重启一次,而在横屏切换竖屏时Activity会重启两次. 我本身 ...

  8. Android学习之碎片的生命周期

    一.碎片的状态: 1.运行状态:当一个碎片是可见的,并且它所关联的活动正处于运行状态时,该碎片也处于运行状态. 2.暂停状态:当一个活动进入暂停状态时(由于另一个未占满屏幕的活动被添加到了栈顶),与它 ...

  9. Android教程 -06 Activity的生命周期

    本篇播客我们重点介绍下如下知识点: 程序启动原理 Activity生命周期 Activity销毁与创建 视频建议采用超清模式观看, 欢迎点击订阅我的优酷 height="498" ...

最新文章

  1. (二)文档请求不同源之window.name跨域
  2. PHP 底层的运行机制与原理 --转
  3. 北京昌平计算机职业高中学校,北京职业学校2021中专
  4. 计算机基础ppt_为什么大学老师教编程上课都不敲代码?为何老师上课都是PPT讲解,实战呢?...
  5. delphi 调用Msftedit.dll,重写Richedit,支持RTF画表格
  6. AWS DeepRacer 参数调优 Amazon SageMaker 和 Amazon RoboMaker
  7. C/C++——黑客数字雨特效
  8. 【预测模型】基于粒子群算法优化最小二乘支持向量机lssvm实现预测matlab源码
  9. 安全测试——SQL注入
  10. PICKIT3 WIN10 无法连接问题解决
  11. 如何防止网站静态文件被挂马
  12. cst自学教材_CST Microwave Studio入门与应用基础课程
  13. 阿里巴巴2016前端开发工程师笔试一
  14. 低版本MAC如何升级系统
  15. iptables --algo 字符串匹配算法 bm kmp
  16. 【指导】如何在 excel 数据表中去重重复项计数?
  17. TRecgNet:基于转换识别网络进行RGB-D场景识别
  18. UML顺序图(sequence diagram)
  19. Android开发(3):个人信息界面设计
  20. pmon下修改分辨率示范

热门文章

  1. linux pwm测试程序,DM8168 PWM驱动与测试程序
  2. 自学Java要不要背熟语法_JAVASE经典面试问题(必须熟背),你Get到了吗?
  3. c语言中memset_C中的memset()
  4. Python bytearray()
  5. Python urllib – Python 3 urllib
  6. sudoku me_Java Sudoku解算器程序
  7. Java常见面试题:Oracle JDK 和 OpenJDK 的区别?
  8. 【云周刊】 第211期:“阿里巴巴小程序繁星计划”:20亿扶持200万小程序开发者和100万商家...
  9. 第一张5G电话卡已发出,潘石屹成中国电信0001号尝鲜者
  10. 打造属于自己的underscore系列 ( 一 ) - 框架设计