草庐IT

OnSaveInstanceState

全部标签

android - Activity 生命周期中的数据保存

保存用户输入数据的常用方法是什么:1.覆盖onPause()方法,随后调用专门设计的方法来使用Android首选项存储数据要么2、onSaveInstanceState()和onRestoreInstanceState()的用法?非常感谢。 最佳答案 通常onPause()用于保存持久化数据,onSaveInstanceState()用于保存动态数据。请注意,onSaveInstanceState()并不总是在Activity进入后台之前被调用。Activity的文档中对这些方法有很好的解释。.

C# 异步方法在 Activity 暂停时继续,导致 IllegalStateException : Can not perform this action after onSaveInstanceState

在XamarinAndroid应用程序中,我有一个在RetainInstancefragment中调用异步方法(网络操作)的Activity,这样操作就不会因配置更改而停止。操作完成后,会更改UI、关闭进度对话框、将新fragment插入布局等。即使Activity在配置更改时被销毁并重新创建,它也能正常工作。但是,如果异步方法完成时Activity暂停,则UI操作会抛出IllegalStateException:CannotperformthisactionafteronSaveInstanceState异常。如果用户在网络操作运行时关闭屏幕或切换到另一个应用程序,就会发生这种情况。

android - 等待 UI 线程完成

我正在运行仪器Activity测试。因为我需要在Activity的一个UI元素中执行一些UI操作。所以我在Activity的UI线程中这样做:settingsActivity.runOnUiThread(newRunnable(){@Overridepublicvoidrun(){testSwitch.performClick();}});每次调用执行点击时,我都会遇到在onSaveInstanceState之后无法执行此操作。我做过的几件事:我试过将Thread.sleep()放在代码之后,但它不起作用。我没有完成拆解中的Activity。所以,我不知道Activity是如何被销毁的

android - 如何使用 onSaveInstanceState

我覆盖下面的onSaveInstanceState函数@OverridepublicvoidonSaveInstanceState(BundlesavedInstanceState){super.onSaveInstanceState(savedInstanceState);}我有一个问题。如果我省略**super.onSaveInstanceState(savedInstanceState)**会有什么问题,所以函数将像这样@OverridepublicvoidonSaveInstanceState(BundlesavedInstanceState){//super.onSaveIn

android - onSaveInstanceState() 应该在 onDestroy() 而不是 onStop()?

为什么在Activity进入停止状态时系统会调用onSaveInstanceState()?由于Activity的实例在停止时一直驻留在内存中,并且它的当前状态只有在Activity被销毁时才会丢失。因此系统应该在进入onDestroy()之前或内部调用onSaveInstanceState()而不是onStop()。不是吗? 最佳答案 因为onDestroy()不能保证被调用(通常,只有当你finish()你的Activity时)并且因为在onStop(),您的Activity不保证保持不变。一旦它不是前台Activity,它可能

android - 从另一个 fragment :IllegalStateException: Can not perform this action after onSaveInstanceState 启动 dialogfragments

所以我一直在试图了解如何解决这个问题,但我无法真正解决它。现在我只有一个fragment和一个按钮。当您按下此按钮时,它将启动带有确定/取消按钮的自定义DialogFragment。如果我按下确定按钮,它将启动另一个自定义DialogFragment,这次它是一个ProgressDialogfragment。问题是,当我旋转并按下ok按钮然后调用ProgressDialogfragment时出现ok/cancel对话框时,我收到此错误。如果我只在显示progressdialogfragment时旋转,则根本没有问题。我正在使用支持包v4。这是类(class):主要Activity:pu

android - 我是否需要将 Intent 对象保存在 onSaveInstanceState() 中以备后用?

我不清楚Intent对象的生命周期。我能否在Activity的整个生命周期内始终使用Intent对象的属性?还是我需要保存传递​​给Activity的值?我确实想在Activity的整个生命周期内使用传递给Activity的Intent的值(action和extra)。我不想将这些值复制到Activity对象的变量中。如果我可以通过从传递给Activity的Intent调用“getIntent()”来获取这些值,我为什么要这样做。我想知道,当Activity因为在内存中腾出空间而被Android销毁,然后又被恢复时,通过调用“getIntent()”Intent对象是否仍然存在?或者我

android - FragmentManager.getFragment() 空指针异常

我正在使用支持库v4,但未能保存fragment的状态。@OverrideprotectedvoidonSaveInstanceState(BundleoutState){...if(mFragment!=null)getSupportFragmentManager().putFragment(outState,"frag",mFragment);...}@OverrideprotectedvoidonCreate(BundlesavedInstanceState){...if(savedInstanceState!=null){//HereIgetNullPointerExcepti

android - 使用Android架构组件LiveData&ViewModel时是否需要使用onSaveInstanceState和onRestoreInstanceState?

AndroidArchitectureComponents提供LiveData和ViewModel类,它们对生命周期更友好,专为更精简的Activity/Fragment而设计。这些类处理跨配置更改的数据存储,但与Activity框架API相比,我对它们的使用感到困惑。onSaveInstanceState(Bundle)和onRestoreInstanceState(Bundle)对于保存Activity状态是否仍然必要或有用? 最佳答案 onSaveInstanceState和onRestoreInstanceState仍然有用

android - 恢复具有相同 ID 的两个 View 的 fragment

我要实现一个复杂的布局。它有19个部分,可以根据用户先前输入的大量参数显示或不显示。为了简化代码并且不显示未使用的部分,布局是动态创建的。一切都在fragment中。该fragment有一个用作容器的LinearLayout,在创建fragment时,我会生成所有必要的部分。每个部分都由其自己的本地适配器管理,该适配器负责膨胀该部分的布局并将其添加到容器中。一切正常。问题是2个部分具有完全相同的结构,因此它们共享相同的xml布局。因此,这两个部分的内部View具有相同的ID。这不是问题,因为该部分在其适配器中本地管理。当我转到下一个fragment然后返回到这个fragment时,问题