码迷,mamicode.com
首页 > 其他好文 > 详细

活动组件(五):一个activity的例子

时间:2016-01-05 15:28:53      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

建立两个Activity,一个是NormalActivity,另一个是DialogActivity。首先建立这两个Activity的布局文件,如下图:

技术分享

技术分享

然后编写这连个Activity,如下:

技术分享

技术分享

接着对这两个个活动进行注册,但是从上面看来,这两个活动都是普通的活动,怎么将DialogActivity设置为对话框模式呢?在注册时候将DialogActivity的主题设置为对话框模式就可以了,如下:

技术分享

然后修改MainActivity,如下:

技术分享

MainActivity的布局文件如下:

技术分享

活动的回收问题

      当一个活动进入到停止状态之后,是有可能被系统回收的,那么加入有一个活动A,用户在A的基础上又启动了B,活动A就进入了停止状态,这个时候由于系统内存不足,将活动A回收掉了,然后用户按下了Back键回到了活动A,也还是会正常显示活动A的,只不过这时候并不执行onRestart()方法,而是会执行活动A的onCreate()方法,因为活动A在这种情况下会被重新创建一遍。但是如果在活动A中有一个文本输入框,已经输入了一些内容,再次创建的时候,之前输入的内容会全部丢失,那么这将严重影响用户体验。

      查阅文档可知,Activity中还提供了一个onSaveInstanceState()的回调方法,这个方法会保证一定在活动被回收之前调用,可以使用这个方法来解决活动被回收时临时数据得不到保存的问题。

技术分享

那么在onCreate()方法中可以这样写:

技术分享

Bundle保存数据的方式跟Intent保存数据的形式相似。Intent还可以结合Bundle一起用于传递数据,首先将需要传递的数据保存在Bundle对象中,然后将Bundle对象放在Intent中,到了目标活动之后先从Intent中取出Bundle,再从Bundle中取出数据。

 

活动组件(五):一个activity的例子

标签:

原文地址:http://www.cnblogs.com/hujingwei/p/5102272.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!