android 保存对象(object)数据

本文介绍了如何在Android中保存对象数据,特别是Activity实例。强调了onSaveInstanceState()方法并不适用于程序退出时的数据保存,而文件读写结合ObjectOutputStream实现的串行化是一种可靠的方法。通过让类实现Serializable接口,可以轻松地将对象写入私有文件存储在/data/data/包名/files/下。
摘要由CSDN通过智能技术生成

在很多时候我们都要保存一个类实例甚至Activity本身,使得下次再开启Activity时可以读取上次保存的信息。

首先说几点:

1.

很多人(包括我)对Activity生命周期不熟悉的人会误以为方法public void onSaveInstanceState(Bundle savedInstanceState)可以在程序退出时保存数据,但事实是,用户手动退出(如回退键)的情况下并不会调用该方法。众所周知,此时一定会调用的是onPause(),但是该方法没有Bundle参数可以让我们存放数据。

2.

过时函数onRetainNonConfigurationInstance() 以及 getLastNonConfigurationInstance(),这两个也不太靠谱,一是已经过时了,而我在使用时并没有出现了一些BUG,具体什么原因还不清楚。


后来我想到,其实文件读写+写对象是最方便的了,因为我们有强大的ObjectOutputStream,这个类在学习Java时已经体验过用它串行化的效果了。只要把需要保存的类implements 接口serializable,该类就自动扩展为可以被ObjectOutputStream使用的类了。然后事情就变得非常方便:


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值