草庐IT

OnSaveInstanceState

全部标签

Android - 保存应用程序状态

我想保存应用程序状态以便能够在另一次启动后恢复它。使用方法onSaveInstanceState并将其保存到Bundle或使用SharedPreferences哪个更好?谢谢 最佳答案 这取决于你的Intent。如果要确保在配置更改和其他重启事件期间保存状态,使用onSaveInstanceState()只是一个合理的解决方案。如果您的目标是在应用程序的生命周期之外真正保存应用程序的状态,您应该考虑使用SharedPreferences或者甚至使用数据库。 关于Android-保存应用程

android - 带有 AndroidFragments 的 onSaveInstanceState 上的 NullPointerException

当我离开FragmentActivity并转到ListActivity时收到NullPointerException。实际上,在我获得ForceClose之前,我就开始查看列表。但是LogCat指的是我刚刚来自的Activity。LogCat是这样说的:08-3107:38:53.356:E/AndroidRuntime(8134):FATALEXCEPTION:main08-3107:38:53.356:E/AndroidRuntime(8134):java.lang.NullPointerException08-3107:38:53.356:E/AndroidRuntime(813

android - 如何在 onSaveInstanceState() 中存储值并检索?

我正在尝试将数组列表的值存储在onSavedInstanceState()中,并在onCreate方法中获取数组列表中的值,但它会引发错误,例如无法暂停Activity这是我的代码publicvoidonSaveInstanceState(BundlesavedInstanceState){savedInstanceState.putParcelable("Old",(Parcelable)profileDetails);super.onSaveInstanceState(savedInstanceState);}在我的onCreate()if(savedInstanceState!=

android - onSaveInstanceState() 未调用 : why?

问题:我以编程方式将fragment添加到LinearLayout。它出现在我的Activity中,太棒了。我打开设备—>配置更改:所有内容都被销毁以重新创建。但是,在调用onDestroy()之前,应该调用onSaveInstanceState()。这是父Activity的情况,但不是我添加的fragment。为什么?代码:XML:我将fragment添加到父Activity中的UI:ft.add(container1,categories,CatFragIds.CATEGORIES.toString()).commit();我覆盖了fragment的onSaveInstanceSt

java - 单例的 OnSaveInstanceState

我有一个SingletonData类,我用它来存储数据。我在不同的Fragment中访问它。当加载第一个Fragment时,Singleton中的所有字段都是null是没有问题的。当显示第二个Fragment时,它依赖于这些字段来显示其数据。第一个Fragment确保初始化这些字段。然而,当用户在第二个Fragment中按下主页按钮,并在大约一个小时后再次打开它时,Singleton已经丢失了所有数据,并且Fragment尝试访问null字段。我想实现onSaveInstanceState方法,但我对它的工作原理感到困惑-我没有要分配给它的数据实例。@Overridepublicvoi

android - 如何在按下后退按钮时保存应用程序

如何在按下后退按钮时存储我的应用程序的状态。当按下后退按钮时,只会调用onPause()而不会调用onSaveInstanceState,我们可以在outState包中存储数据。一个答案可能是sharedPreference但我的问题是它将只存储int而不是intArray就像bundle那样。有什么方法可以显式调用onSaveInstanceState吗? 最佳答案 用户600027...即使您能够调用onSaveInstanceState,该bundle也不会持久保存,而且我不相信它会在硬杀后可用。您可以编写一个方法将int数组

android - onSaveInstanceState/onPause - 等到状态完全保存后再允许进程被终止

我正在开发我的第一个Android应用程序。它有一个模型,当用户进行更新时,该模型会持久保存到数据库中。当onSaveInsanceState被调用时,我想保存一个id,该id可用于从数据库加载用户正在处理的文档。但这只有在文档完全进入数据库后才会发生。在某些情况下,保留一个复杂的文档可能需要几秒钟(我希望一旦我完成所有冗长的注销后这会加快速度,并且在实际使用中用户将分阶段构建一个复杂的文档,每个将被持久化到数据库中,因此不太可能将一个复杂的文档一次全部保存。现在,Android线程的第一条规则是“不要阻塞UI线程”,因此数据库交互当然发生在单独的线程上。但是我对Android生命周期

android - ClassNotFoundException 在 onSaveInstanceState 中读取扩展 MapFragment 的类中的可序列化对象

我有一个扩展SupportMapFragment的类,我从后端加载一些数据并显示标记。我还有另一个fragment,它显示与map上所选标记相对应的详细信息。我在map下方以纵向模式显示详细信息fragment,并以横向模式并排显示。publicclassMapDisplayFragmentextendsSupportMapFragment{privateArrayListlocations=null;publicvoidonViewCreated(Viewview,BundlesavedInstanceState){if(savedInstanceState!=null){locat

java - 在 onSaveInstanceState 之后无法执行此操作(onClick 偏好)

这是我的PreferenceActivity(我的主要Activity的内部类)publicstaticclassTestSettingsextendsPreferenceActivityimplementsPreference.OnPreferenceClickListener{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);addPreferencesFromResource(R.xml.pref);getPreferenceManager().f

android - 使用 onSaveInstanceState() 和 ViewModel 保存 Activity 的状态

阅读本文后,我对ViewModels留下了一些疑问:https://developer.android.com/topic/libraries/architecture/saving-states这里说您应该结合使用ViewModel进行配置更改(如屏幕旋转),并在所有其他情况下使用onSaveInstanceState()Activity被销毁,然后重新创建以保存UI状态。我的问题是我们如何知道调用onCreate(Bundle)时恢复状态的方法——我应该使用ViewModel还是应该使用接收到的包作为参数?当配置改变时,onSaveInstanceState()也会被调用,显然on