便签软件开发笔记——Memo列表界面

Memo列表界面的创建和逻辑操作跟日期列表界面差不多,可以参考日期列表界面。

 

 

这儿需要重点进行说明的是下面这段代码:

 

 

google android参考手册中对onSaveInstanceState方法的说明如下:

 

 


 

protected void onSaveInstanceState (Bundle outState)
Since: API Level 1
 
一个activity被killed掉之前调用,用来保存该activity实例的状态。之后,在该activity的onCreate(Bundle)或者onRestoreInstanceState(Bundle)(由onSaveInstanceState这个方法populate的Bundle将会被传递给onCreate和onRestoreInstanceState两个方法)中可以恢复在onSaveInstanceState方法中保存的状态。

 

这个方法在一个activity被kill掉之前调用,从而在未来某个时刻要重新创建该activity的时候能够恢复其状态。

例如,显示activity A之后,在activity A前面显示activity B,那么在某个时刻系统会kill掉activity A以取回它所占用的资源,activity A将会有机会通过这个方法来保存当前的状态,从而,当用户返回activity A时,就能够在onCreate(Bundle)或者onRestoreInstanceState(Bundle)方法中恢复之前保存的用户界面的状态。

不要把这个方法与activity的生命周期回调函数如onPause和onStop混淆。当一个activity被放置到后台或者按它的方式销毁时会调用onPause;当一个activity被销毁时会调用onStop。(这儿所说的销毁应该是指设置该activity为可销毁状态,而不是真的销毁)。当用户浏览了activity B之后又浏览activity A,这时对于activity B是无需调用onSaveInstanceState(Bundle)的,因为 particular instance will never be restored, 所以系统不调用onSaveInstanceState(这儿我有点搞不懂,为什么这个particular instance不会被restored)。在这个例子中,activity B的onPause或者onStop会被调用。

 

一个例子是,当activity B在activity A之前调用的时候,如果在activity B的生命周期中,activity A没有被销毁的话那么activity A的onSaveInstanceState不会被调用,因为activity A的界面状态仍处于可交互的状态。

 

该方法默认的实现是, 通过在窗口层次结构上对有一个id的view调用onSaveInstanceState方法来处理其实例状态,此外,还保存了当前获得焦点的view的id(所有保存的这些状态,都将通过默认实现的onRestoreInstanceState来恢复)。

如果你要覆盖这个方法来保存每个view不能捕捉到的额外信息,你需要先调用该方法默认的实现(super.onSaveInstanceState),然后再保存你自己的信息。

 

如果调用,那么这个方法将会在onStop之前出现。而没有保证该方法是在onPause之前或之后调用。

Parameters

outState Bundle in which to place your saved state.

 


 

从上面的描述,可以看出,如果一个activity可能被销毁的话那么onSaveInstanceState方法会被调用。但是上面所举例子中的particular instance will never be restored我就搞不清楚,希望高人指点。

 

因此,在onCreate方法中,如下的一句代码:

获取的就是onSaveInstanceState方法中保存的信息。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值