Android第一周(第二部分)-Intent和Activity生命周期

页面跳转的数据传递

1.自动跳转

Handler的postDelayed(Runnable, long)方法
Context上下文,intent(Context, Class)

2.如何传递数据

页面1,用Intent对象的putExtra(key, value)方法传出数据
页面2,用getIntent()方法来获得Intent对象,并用该对象的getStringExtra(key)方法来接收数据

3.如何传递对象

需要使该对象实现序列化,即对被传递的类实现Serializable接口
页面1,用putExtra(key, value)方法来传出数据,value为对象
页面2,用getSerializableExtra(key)来接收数据

4.如何回传数据

页面1,startActivity(Intent)换成startActivityForResult(Intent, int),int是requestcode。
页面2,setResult(int, Intent),int是resultcode,Intent不跳转,只携带数据(即,使用new Intent()构造方法,使用putExtra())。关闭自己finished(),即回到刚才页面。
页面1,重载onActivityResult方法,接收requestcode、resultcode和Intent中的回传数据,即在该方法中用Intent对象的getStringExtra(key)来接收数据。Log.i()方法的使用。

5.Activity的生命周期

1) onCreate()
2) onStart()
3) onResume()
4) onPause()
5) onStop() 放在后台
6) onDestroy() 返回
7) onRestart()
Activity生命周期
Activity生命周期-汉化版
概览
焦点生命周期,失去焦点,但始终可见
可视生命周期,页面失去焦点,不可见
整体生命周期,

创建:onCreate->onStart->onResume
放在后台或者跳转到其他页面:onPause->onStop,再打开:onRestart->onStart->onResume
返回键:onPause->onStop->onDestroy

6.例子

最后用一个实际的例子来说明Activity的各个生命周期。假设有一个程序由2个Activity A和B组成,A是这个程序的启动界面。
1)当用户启动程序时,Process和默认的Task分别被创建,接着A被压入到当前的Task中,依次执行了 onCreate, onStart, onResume事件被呈现给了用户;
2)此时用户选择A中的某个功能开启界面B,界面B被压入当前Task遮盖住了A,A的onPause事件执行,B的 onCreate, onStart, onResume事件执行,呈现了界面B给用户;
3)用户在界面B操作完成后,使用Back键回到界面A,界面B不再可见,界面B的onPause, onStop, onDestroy执行,A的onResume事件被执行,呈现界面A给用户。
4)此时突然来电,界面A的onPause事件被执行,电话接听界面被呈现给用户,用户接听完电话后,又按了Home键回到桌面,打开另一个程序“联系人”,添加了联系人信息又做了一些其他的操作,此时界面A不再可见,其 onStop事件被执行,但并没有被销毁。
5)此后用户重新从菜单中点击了我们的程序,由于A和其所在的进程和Task并没有被销毁,A的onRestart 和onStart事件被执行,接着A的onResume事件被执行,A又被呈现给了用户。
6)用户这次使用完后,按Back键返回到桌面,A的 onPause, onStop被执行,随后A的onDestroy被执行,由于当前Task中已经没有任何Activity,A所在的Process的重要程度被降到很低,很快A所在的Process被系统结束。

快捷键
快速提取常量:command option c
运行:command r
command n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值