android自学第五天 Activity生命周期以及Activity之间的传值
2017-05-22 17:30
483 查看
Activity生命周期以及Activity之间的传值一、Activity初步认识:【创建、配置、启动Activity】(一)、创建Activity:创建Activity:继承于Activity或其子类,重写onCreate()方法。(二)、Activity的注册配置:作为四大组件之一的Activity,必须要在AndroidManifest清单文件中进行注册。如果没有配置,而又在程序中启动了该Activity,将抛出异常(ActivityNotFoundException)。注册配置的核心代码:【附加思考】:当在AndroidManifest清单文件中,设置多个页面都是默认启动页,会报错吗?如果不 报错,到底是执行哪个页面呢?当在AndroidManifest清单文件中,如果不设置默认启动页,会报错吗?(三)、启动Activity:在Android应用里各组件之间通信使用Intent。一个Activity通过Intent来表达自己的“意图”。常用有四种方式: 方式一: 第一个参数 上下文对象 第二个参数是需要启动的activity的对象 Intent intent=new Intent(MainActivity.this,OtherActivity.class); startActivity(intent); 方式二 : Intent intent=new Intent(); //指定当前的组件名和需要启动的组件名 ComponentName componentName=new ComponentName(MainActivity.this, OtherActivity.class); intent.setComponent(componentName); startActivity(intent); 方式三 : Intent intent=new Intent(); intent.setClass(MainActivity.this, OtherActivity.class); startActivity(intent); //方式四 : Intent intent=new Intent(); intent.setClassName(MainActivity.this, OtherActivity.class.getName()); startActivity(intent); 3.常用启动方式有两种:startActivity();startActivityForResult();(四)、Activity之间交换数据:第一种方式:甲页面利用intent对象的putExtra()方法传值,乙页面利用getStringExtra()、getIntExtra()等系列方法来一一接收值;第二种方式:【常用】甲页面利用bundle对象来保存所有需要传递的数值,通过intent的putExtras()方法传值,乙页面利用intent对象的getExtras()方法返回bundle对象,将所有接收的数据放在bundle对象中,利用bundle的get系列方法一一去除数据。 【备注:】如果甲页面使用putExtras()方法传值,则乙页面使用getExtras()接收值。如果甲页面使用putExtra()方法传值,则乙页面要使用getBundleExtra()方法接收值。Activity之间是否可以传递对象呢?【掌握Serializable的用法】Serializable的用法Parcelable的用法1、传递一般数据的核心代码:(1)、MainActivity页面:(2)、NextActivity页面:2、传递对象数据的核心代码:(1)、Person对象核心代码:(2)、MainActivity页面:(3)、ReceiverActivity 页面:二、Activity——调用另一个Activity并返回结果:(一)、概念:甲页面调用乙页面,当用户在乙页面完成任务后,程序自动返回到甲页面,而甲页面必须能够获取到用户在完成乙页面后传递的数据结果。(二)、做法:与普通的页面交换数据不同的是,要使用startActivityForResult()方法来启动另一个Activity。(三)、示例代码:1、MainActivity页面:2、ResultActivity 页面:三、Activity——通过Application进行传值: 1.Application 2.,MainActivity3.ResultActivity四、Activity生命周期:(一)、课堂引入:人的生命周期是怎么样的?胎儿婴儿儿童、少年、青年、中年突发变故老年死亡(二)、Activity生命周期:1、Activity一生中有七种不同的状态。onCreate()onStart()onResume()onPause()onStop()onRestart()onDestroy()【备注:】A、七个生命周期组合:onCreate、onStart、onResume:启动应用程序onPause、onStop:失去焦点onRestart、onStart、onResume:重新获得焦点onPause、onStop、onDestroy :退出应用程序B、七个生命周期按阶段划分:onCreate() --- onDestroy() 完整生命周期 The entire lifetimeonStart() --- onStop() 可见生命周期 The visible lifetime:onResume() --- onPause() 前沿生命周期(焦点生命周期) The foreground lifetime:2、定义生命周期的作用:①当用户接一个电话或切换到另一个程序不会崩溃②当用户后台运行程序时不会销毁有价值的系统资源③当用户离开再返回你的应用时不会丢失用户的进程④当手机屏幕进行横竖屏切换的时候不会崩溃或者丢掉用户的进程3、完整的生命周期图(三)、实例代码操作:模仿以下操作,观察输出日志,找寻生命周期方法依次回调的规律:打开主界面,后退键退出打开主界面,进入第二个页面打开主界面,模拟电话进入及挂机,再次显示主界面打开主界面,HOME键退出打开主界面,HOME键退出,再次启动app打开主界面,点击该界面中捆绑退出事件的按钮后退出打开主界面,切换横屏竖屏。生命周期执行的顺序:
04-23 03:51:29.750: I/MainActivity(741): ==MainActivity onCreate执行了04-23 03:51:29.759: I/MainActivity(741): ==MainActivity onStart执行了04-23 03:51:29.759: I/MainActivity(741): ==MainActivity onResume执行了04-23 03:52:04.780: I/MainActivity(741): ==MainActivity onPause执行了04-23 03:52:04.791: I/MainActivity(741): ==MainActivity onStop执行了04-23 03:52:04.791: I/MainActivity(741): ==MainActivity onDestroy执行了04-23 03:52:05.200: I/MainActivity(741): ==MainActivity onCreate执行了04-23 03:52:05.209: I/MainActivity(741): ==MainActivity onStart执行了04-23 03:52:05.329: I/MainActivity(741): ==MainActivity onResume执行了
相关文章推荐
- android应用中多个activity之间切换以及传值
- 【Android基础笔记05】Activity生命周期以及Activity之间的传值
- Android笔记(9)---Fragment的生命周期以及在Activity之间的传值
- Fragment的生命周期以及跟Activity之间互相传值小总结
- Fragment的生命周期以及跟Activity之间互相传值小总结
- [android] Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化
- Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值
- android的一些提示框 以及activity之间数据的传递 .
- Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值
- android中页面跳转以及数据在Activity之间的传递
- Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值
- 【Android 应用开发】Activity生命周期 与 Activity 之间的通信
- Android中的activity跳转新activity以及相互传值
- android 没有main函数,怎么找到程序执行入口呢?以及activity主要生命周期的方法说明
- Android自学笔记-15-Activity的生命周期
- Activity之间切换 以及传值
- android开发中fragment的引用以及fragment与activity之间通信的概述
- android开发中fragment的引用以及fragment与activity之间通信的概述
- Android 编程组件-Fragments 的生命周期与 Activity 的生命周期之间的关系
- Android 多Activity之间跳转传值