问题标签 [onsaveinstancestate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
47 浏览

android - OnSaveInstanceState 将 DataSet var 插入 Bundle

我应该使用哪种方法在里面存储DataSet变量OnSaveInstanceState?有不同的选项,例如PutArrayPutStringPutInt等,但我找不到适合数据集的选项。

0 投票
2 回答
1600 浏览

android - 方向改变时无法在片段中保存recyclerview的实例状态

我无法让我的 recyclerview 保存方向更改的状态。在我的片段中使用了 onSaveInstanceState 但显然不正确,因为它不起作用。有关如何解决的任何建议和指示?

第二活动

步骤片段

activity_main_two.xml https://github.com/RJRogers/TwoPaneUITest/blob/master/app/src/main/res/layout/activity_main_two.xml

fragment_steps.xml https://github.com/RJRogers/TwoPaneUITest/blob/master/app/src/main/res/layout/fragment_steps.xml

0 投票
2 回答
1201 浏览

android - 如何使用 onSaveInstanceState 和 onRestoreInstanceState 防止丢失复选框和单选按钮选择

我在保存单选按钮和复选框的检查状态时遇到问题。如何使用 onSaveInstanceState 和 onRestoreInstanceState 保存这些元素的检查状态?

这是一个简单的测验应用程序。单击完成按钮后,会打开一个新的评分表,正确答案会变为绿色。但同时,当方向改变时,用户的选择会丢失。

这是代码:

0 投票
1 回答
1150 浏览

java - 在方向改变后保持 CountDownTimer 运行

我制作了一个完美运行的 CountDownTimer - 您可以获得正确的时间来软/中/硬煮鸡蛋。我的问题是定时器在方向改变后重置。我已经用谷歌搜索并尝试了很多解决方案,但我仍然不明白如何正确使用 onSave 和 onRestore。这是我的代码:

有小费吗?

0 投票
2 回答
152 浏览

android - 通过覆盖 onSaveInstanceState 跨轮换保存数据

我创建了一个简单的应用程序。单击下一个按钮时,问题将被更改。如果屏幕旋转,我希望问题仍然保持不变。我已经通过下面的代码覆盖了 Activity 方法,protected void onSaveInstanceState(Bundle outState)但似乎没有任何效果。

0 投票
2 回答
56 浏览

android - 发送数组列表捆绑之间

问题:
如何将数据传输到_selectednumber_pointsonSaveInstanceStateonRestoreInstanceState

0 投票
1 回答
42 浏览

android - 屏幕旋转时保留原始意图包?

更改屏幕方向时是否保留了在创建时传递给活动的原始信息(例如Intent Bundlefrom )?getIntent().getExtras()我可以getIntent().getExtras()在轮换后再次致电以再次获取信息吗?还是我需要自己保存该信息onSaveInstanceState并从中检索savedInstanceState Bundle

0 投票
0 回答
176 浏览

java - 将匕首清除/GC具有应用程序生命范围的未引用对象

这是用例。在一个片段(称为 PagerFragment)中,它注入了一个对象(称为 DI_O),它是带有构造函数注入的注解 @Singleton。当片段附加到一个活动时,它通过匕首获取对象 DI_O 实例。

当活动被销毁时,片段也会被销毁,这个 DI_O 会被 GC-ed 吗?

当以这种方式实现时,注意到类似配置更改或任何原因操作系统杀死了活动(使用“不要保持活动活动”来模拟最小化应用程序),然后恢复活动,然后通过匕首注入相同的 DI_O:

这是所需要的,因为在活动的会话期间,DI_O 中存储了一些数据,当操作系统恢复活动时,同一会话需要这些数据。

但这是否意味着 DI_O 实例将随着应用程序的生命周期而永远存在,这不是这里所希望的?如果活动是新的(onCreate() with savedInstance == null passed in as param),我们确实希望为新会话获取一个新的 DI_O 实例。

在我们的特定用例中,onSaveInstanceState() 没有帮助,因为存储在 DI_O 中的数据来自 3rd 方 sdk 并且不可序列化,特别是它们是流式的,就像它只通过 api next(),在 next() 调用之后无法从流中再次获取相同的数据。它没有类似 ID 的东西,可以重新检索相同的数据。对于某些会话,它可能超过一兆。

与 onSaveInstanceState() 一样存储数据的更好方法是什么,但当活动/片段真正被销毁时也会被清除(isFinishing() == true)。

0 投票
2 回答
1085 浏览

android - 当活动是后台到前台时,重用片段导致 IllegalArgumentException

我的活动使用预先初始化的片段(初始化 onCreate)

当片段 (A) 将首先显示时,使用FragmentTransaction.add(A)。如果片段 B 请求显示(如果是第一个), FragmentTransaction.detach(A)FragmentTransaction.add(B)

片段 A 再次请求显示,使用FragmentTransaction.detach(B)FragmentTransaction.attach(A)

此操作在BottomNavagationView.OnNavigationItemSelectedListener中。

在这种情况下,我使应用程序完成(使用后退按钮,但不使用 activity.finish),然后再次运行该应用程序,不显示任何片段(期望片段 B 显示)。

并且,当我单击 BottomNavagationView 按钮(片段添加)时,

导致java.lang.IllegalStateException:在 commit() 的onSaveInstanceState 之后无法执行此操作。

如何解决这个问题呢?

commitallowingstateloss()似乎无法正常工作...

附上我的代码:

并且, FragmentUtil :

HomeFragment 和其他人什么都不做。只是膨胀xml。

0 投票
1 回答
471 浏览

android - 在 onSaveInstanceState 中保存 List 时转换为 ArrayList

我找不到答案:

我想在 onSaveInstanceState 中保存一个 Parcelable ArrayList,但是当我这样做时它不接受声明为 List 的 ArrayList:

所以我有 2 个选项:要么将 List 声明为 ArrayList,要么将其转换为 Parcelable ArrayList,如下所示:

并将其声明为列表:

在线我只看到第一种方法,所以我想知道第二种方法是否有任何缺点?