问题标签 [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.
android - OnSaveInstanceState 将 DataSet var 插入 Bundle
我应该使用哪种方法在里面存储DataSet变量OnSaveInstanceState
?有不同的选项,例如PutArray、PutString、PutInt等,但我找不到适合数据集的选项。
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
android - 如何使用 onSaveInstanceState 和 onRestoreInstanceState 防止丢失复选框和单选按钮选择
我在保存单选按钮和复选框的检查状态时遇到问题。如何使用 onSaveInstanceState 和 onRestoreInstanceState 保存这些元素的检查状态?
这是一个简单的测验应用程序。单击完成按钮后,会打开一个新的评分表,正确答案会变为绿色。但同时,当方向改变时,用户的选择会丢失。
这是代码:
java - 在方向改变后保持 CountDownTimer 运行
我制作了一个完美运行的 CountDownTimer - 您可以获得正确的时间来软/中/硬煮鸡蛋。我的问题是定时器在方向改变后重置。我已经用谷歌搜索并尝试了很多解决方案,但我仍然不明白如何正确使用 onSave 和 onRestore。这是我的代码:
有小费吗?
android - 通过覆盖 onSaveInstanceState 跨轮换保存数据
我创建了一个简单的应用程序。单击下一个按钮时,问题将被更改。如果屏幕旋转,我希望问题仍然保持不变。我已经通过下面的代码覆盖了 Activity 方法,protected void onSaveInstanceState(Bundle outState)
但似乎没有任何效果。
android - 发送数组列表捆绑之间
问题:
如何将数据传输到_selectednumber
和_points
从onSaveInstanceState
到onRestoreInstanceState
?
android - 屏幕旋转时保留原始意图包?
更改屏幕方向时是否保留了在创建时传递给活动的原始信息(例如Intent
Bundle
from )?getIntent().getExtras()
我可以getIntent().getExtras()
在轮换后再次致电以再次获取信息吗?还是我需要自己保存该信息onSaveInstanceState
并从中检索savedInstanceState
Bundle
?
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)。
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。
android - 在 onSaveInstanceState 中保存 List 时转换为 ArrayList
我找不到答案:
我想在 onSaveInstanceState 中保存一个 Parcelable ArrayList,但是当我这样做时它不接受声明为 List 的 ArrayList:
所以我有 2 个选项:要么将 List 声明为 ArrayList,要么将其转换为 Parcelable ArrayList,如下所示:
并将其声明为列表:
在线我只看到第一种方法,所以我想知道第二种方法是否有任何缺点?