Android Application的使用及其生命周期
摘要:
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的使用及其生命周期相关推荐
- Android四大基本组件和生命周期的介绍
Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity ...
- Android组件系列----Activity的生命周期
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- android mvvm livedata_再谈Android应用架构——Jetpack VS 生命周期
前面我们对MVC.MVP.MVVM进行了详尽的分析,但还有一个问题悬而未决,那就是生命周期.在Android平台上生命周期具有十分重要的意义,因此这也是架构必须考虑的因素之一.生命周期处理不好很容易发 ...
- android启动服务的生命周期,android Service启动运行服务 生命周期
Service Android中的service类似于windows中的service,service一般没有用户操作界面,它运行于系统中不容易被用户发觉, 可以使用它开发如监控之类的程序. 一.步骤 ...
- 7.Android的学习(活动的生命周期以及小例子)
Android活动的生命周期 Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack). 每个活动在其生命周期最多可能会有 ...
- 你还在问android横竖屏切换的生命周期?
本文原创,转载请注明来自xiaoQLu http://www.cnblogs.com/xiaoQLu/p/3324503.html 开源帮助android获得了飞速的发展,开源也导致了数不清的碎片问题 ...
- Android横竖屏切换的生命周期
关于Android手机横竖屏切换时Activity的生命周期问题,网上有很多相似的文章,大多数都是说明在竖屏切换横屏时Activity会重启一次,而在横屏切换竖屏时Activity会重启两次. 我本身 ...
- Android学习之碎片的生命周期
一.碎片的状态: 1.运行状态:当一个碎片是可见的,并且它所关联的活动正处于运行状态时,该碎片也处于运行状态. 2.暂停状态:当一个活动进入暂停状态时(由于另一个未占满屏幕的活动被添加到了栈顶),与它 ...
- Android教程 -06 Activity的生命周期
本篇播客我们重点介绍下如下知识点: 程序启动原理 Activity生命周期 Activity销毁与创建 视频建议采用超清模式观看, 欢迎点击订阅我的优酷 height="498" ...
最新文章
- (二)文档请求不同源之window.name跨域
- PHP 底层的运行机制与原理 --转
- 北京昌平计算机职业高中学校,北京职业学校2021中专
- 计算机基础ppt_为什么大学老师教编程上课都不敲代码?为何老师上课都是PPT讲解,实战呢?...
- delphi 调用Msftedit.dll,重写Richedit,支持RTF画表格
- AWS DeepRacer 参数调优 Amazon SageMaker 和 Amazon RoboMaker
- C/C++——黑客数字雨特效
- 【预测模型】基于粒子群算法优化最小二乘支持向量机lssvm实现预测matlab源码
- 安全测试——SQL注入
- PICKIT3 WIN10 无法连接问题解决
- 如何防止网站静态文件被挂马
- cst自学教材_CST Microwave Studio入门与应用基础课程
- 阿里巴巴2016前端开发工程师笔试一
- 低版本MAC如何升级系统
- iptables --algo 字符串匹配算法 bm kmp
- 【指导】如何在 excel 数据表中去重重复项计数?
- TRecgNet:基于转换识别网络进行RGB-D场景识别
- UML顺序图(sequence diagram)
- Android开发(3):个人信息界面设计
- pmon下修改分辨率示范
热门文章
- linux pwm测试程序,DM8168 PWM驱动与测试程序
- 自学Java要不要背熟语法_JAVASE经典面试问题(必须熟背),你Get到了吗?
- c语言中memset_C中的memset()
- Python bytearray()
- Python urllib – Python 3 urllib
- sudoku me_Java Sudoku解算器程序
- Java常见面试题:Oracle JDK 和 OpenJDK 的区别?
- 【云周刊】 第211期:“阿里巴巴小程序繁星计划”:20亿扶持200万小程序开发者和100万商家...
- 第一张5G电话卡已发出,潘石屹成中国电信0001号尝鲜者
- 打造属于自己的underscore系列 ( 一 ) - 框架设计