activity的保存状态机制

本文详细介绍了如何在Android应用中通过重写Activity的onSaveInstanceState方法来保存用户当前操作状态,确保用户在离开并重新返回应用时能恢复之前的操作进度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class MainActivity extends BaseActivity {
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString("savedata","this is form save.....");
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState != null){
            String savedata = savedInstanceState.getString("savedata");
            Log.d("savedata",savedata);
        }
    }
当activityA跳转到activityB时,A当前view的状态(有定义id的)会自动保存。这时要是因内存不足(或者横竖屏切换)而将A销毁,B返回到A时会重新执行oncreate方法到A页面,这时候A当前View的状态会恢复。

在Activity中保存用户的当前操作状态,如输入框中的文本,一般情况下载按了home键后,重新进入文本框中的东西会丢下,所以我们要保存当前页面信息,如在写短信的时候接到一个电话,那么当你接电话的时候短信界面就会别隐藏,那么我们希望接完电话后可以继续编辑短信,就需要保存状态。使用办法:

重写Activity中的onSaveInstanceState(Bundle outState)方法,保存数据。其中Bundle是一个键值对的集合。

onCreate方法里也有这个参数,但是一开始这个数据是空的。判断saveInstanceState是否为空,不为空时取出数据。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值