gpt4 book ai didi

android - onSaveInstanceState() 可以手动调用吗?

转载 作者:行者123 更新时间:2023-11-29 23:32:46 31 4
gpt4 key购买 nike

我正在尝试在单击后退按钮时保存和检索我的 ActivityonSaveInstanceState()。我读过默认情况下它不会保存,因为假设用户在单击返回时已完成 Activity 。但是,在我的应用程序中,情况并非如此,我想从内部调用 onSaveInstanceState():

@Override
public void onBackPressed() {
super.onBackPressed();
}

但是,它会在屏幕旋转时保存。我读过的这也是默认行为。

我花了几天时间试图破解它,但我就是一无所获。

最佳答案

I'm trying to save and retrieve my activities savedInstanceState when clicking the back button. I have read that by default it is not saved because it is assumed that the user is done with the activity when clicking back.

一切正确。此外,在这种情况下,Android 假定用户不再需要该应用,因此它可以安全地终止应用进程。

Can saveInstanceSate be called manually?

当然。 method is protected .但根据您的要求,这没有意义。在您的情况下,即使您作为方法参数传递的“手动” Bundle 将被系统保存,驻留在 RAM 中的数据将立即随着应用程序进程本身消失,因为后按.

It is, however, saved on screen rotation.

也是正确的。在这种情况下,Android 假定该应用仍在使用中,因此它会(部分地)关心为您恢复其状态。

However, in my app, this is not the case and I would like to saveInstanceState from within onBackPressed().

我怀疑您是否应该与 OS 习语作斗争。 Android 为您提供了恢复应用程序状态的替代选项(因此用户“认为”他/她回到了您的应用程序所在的位置),例如SharedPreferences、数据库、内部存储等。我建议坚持操作系统习惯用法。

关于android - onSaveInstanceState() 可以手动调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52504279/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com