第一行代码学习2(4)

来源:互联网 发布:linux有几个版本 编辑:程序博客网 时间:2024/05/29 19:33

活动的声明周期


暂停状态(onPause)与停止状态(onStop)
1.暂停状态:活动不再处于栈顶,但任然可见,就是当一个新活动无法覆盖上一个活动时。
2.停止状态:当一个活动不处于栈顶,并且完全不可见的时候。

记录一个把活动设置成dialog的方式:
1.新建一个Activity;
2.在AndroidManifest.xml文件中注册的时候加入如下代码:

<acrivity android:theme="@android:style/Theme.Dialog">

这样该活动在被启动的时候就是以dialog的形式呈现出来,用来测试活动进入pause周期而不进入stop周期的方法。

活动被回收时的数据存储方法

Activity 中还提供了一个onSaveInstanceState()回调方法,这
个方法会保证一定在活动被回收之前调用,onSaveInstanceState()方法会携带一个Bundle 类型的参数,Bundle 提供了一系列的方法
用于保存数据,比如可以使用putString()方法保存字符串,使用putInt()方法保存整型数据以此类推。每个保存方法需要传入两个参数,第一个参数是键,用于后面从Bundle中取值,第二个参数是真正要保存的内容。(类似Intent的put方法)

在MainActivity中添加如下代码就可以将临时数据进行保存:

@Overrideprotected void onSaveInstanceState(Bundle outState){    super.onSaveInstanceState(outState);    String tempData = "Something you just typed";    outState.putString("data_key", tempData);}

取值时的代码如下:

@Overrideprotected void onCreate(Bundle saveInstanceState){    super.onCreate(saveIntstanceState);    setContentView(R.layout.Main);    if(saveInstanceState != null){        String tempData = saveInstanceState.getString("data_key");        log.i(TAG, tempData);    }}

注意:Intent 还可以结合Bundle 一起用于传递数据的,首先可以把需要传递的数据都保存在 Bundle 对象中,然后再将 Bundle 对象存放在 Intent 里。到了目标活动之后先从 Intent 中取出 Bundle,再从 Bundle中一一取出数据。

0 0