当活动被回收,再次启动时使数据不丢失

来源:互联网 发布:推广产品的软件 编辑:程序博客网 时间:2024/06/05 08:37

onSaveInstanceState( )回调方法保存数据


这个方法会保证一定在活动被回收之前调用,因此我们可以通过这个方法来解决活动被回收时临时数据得不到保存的问题。

onSaveInstanceState()方法会携带一个 Bundle 类型的参数。

Bundle 提供了一系列的方法用于保存数据

使用 putString(key,value)方法保存字符串 使用 putInt(key,value)方法保存整型数据,
以此类推。每个保存方法需要传入两个参数 第一个参数是键,用于后面从 Bundle 中取值, 第二个参数是真正要保存的内容。

@Overrideprotected void onSaveInstanceState(Bundle outState) {    super.onSaveInstanceState(outState);    outState.putString("key", "hello");}

onCreate( )方法中取出保存的数据


onCreate( )方法其实也有一个 Bundle 类型的参数。这个参数在一般情况下都是null,但是当活动被系统回收之前有通过onSaveInstanceState()方法来保存数据的话,这个参数就会带有之前所保存的全部数据。再通过相应的取值方法将数据取出即可。

//onCreate()方法中if (savedInstanceState != null) {    String value =   savedInstanceState.getString("key");}
0 0