问题标签 [activity-state]
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 - 每当应用程序从后台进入前台时,如何始终启动登录活动?
我有LoginActivity
哪个是我的主要活动以及 LAUNCHER 活动,我还有其他活动,例如CustomerAddActivity
& CustomerListActivity
。
现在假设我在CustomerAddActivity
里面,我按下 Home 按钮,应用程序进入后台,当应用程序再次进入前台时,它必须首先询问LoginActivity
是否有效的凭据(简单的凭据,例如来自 sq-lite 的用户名和 pin),然后返回CustomerAddActivity
with这是状态。
android - 旋转屏幕时图像不保留
我正在尝试将图库中的图像添加到图像视图中。它已被添加,但图像在旋转屏幕时从图像视图中消失。图像已保存到 Firebase。如何保存活动状态?我已经搜索过,但没有找到相关的答案。谁能帮我解决这个问题。
android - 如何在 OnPause 和 OnResume 状态下处理 ToggleButton 状态
我面临切换按钮状态onResume()
和onPause()
状态的问题。
Activity - A(第一个用户打开按钮)然后返回到 Activity - B,然后它会返回到 Activity - A 然后我想要切换按钮打开而不是关闭,如何在 android 中处理这种状态。
android - 视频应用程序的活动在分屏时的状态是什么?
我正在 Android 中设置一个可以在分屏中工作的应用程序。当我的活动可见但不与用户交互时,它的状态(在活动生命周期中)是什么?值得注意的是,activity负责播放视频。
android - 字段需要 API 级别 29(当前最低为 16):android.app.TaskInfo#topActivity
我试图检查活动是在前台还是后台,所以我使用活动管理器来找到它。当我compileSdkVersion
28 岁时,应用程序编译成功。当我用 29 运行相同的代码时compileSdkVersion
,出现以下错误,
当我设置compileSdkVersion
为 29 时出现此错误。
android-fragments - 显示 BottomSheetDialogFragment 时出现“java.lang.IllegalStateException:onSaveInstanceState 后无法执行此操作”
当我尝试在片段中打开 BottomSheetDialogFragment 时遇到问题,使用来自另一个片段的回调结果,该片段嵌套在另一个活动中。
所有进一步的演示都是对项目中真实案例的抽象,具有无法更改的已建立应用程序架构。让我给你解释一下。
我有一个名为“MainActivity”的主要主机活动,其中包含 BaseFragment
此 BaseFragment 使用包含 LoginFragment 的 LoginActivity 打开登录屏幕,因为它需要授权用户。
LoginActivity 也使用 . 处理成功/失败登录的结果supportFragmentManager.setFragmentResultListener (...
。对于此示例, FragmentResultListener 成功处理任何更改。LoginActivity 要求 MainNavigator 从称为登录的 BaseFragment 打开 BottomSheetDialogFragment,用于授权用户并完成。
登录片段
MainNavigator 是用于跨整个应用程序导航的抽象。
MainNavigator 调用 BaseFragment 打开 BottomSheetDialogFragment。
当 LoginActivity 调用 MainNavigator 打开 BottomSheetDialogFragment。- 发生 2022-02-08 19:49:58.285 20135-20135/com.vadim.stackoverflowquestion E/VadymTag: BaseFragment onPause 2022-02-08 19:49:58.286 20135-20135/com.vadim.stackoverflowquestion E/VadymTag: MainActivity onPause 2022-02-08 19:49:58.790 0-0/? E/init: updatable process 'console' exited 4 times in 4 minutes 2022-02-08 19:49:59.027 20135-20135/com.vadim.stackoverflowquestion E/VadymTag: BaseFragment onSaveInstanceState 2022-02-08 19:49:59.031 20135-20135/com.vadim.stackoverflowquestion E/VadymTag: MainActivity onSaveInstanceState 2022-02-08 19:49:59.799 20135-20135/com.vadim.stackoverflowquestion E/AndroidRuntime: FATAL EXCEPTION: main Process: com.galazjukvadim.stackoverflowquestion, PID: 20135 java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at androidx.fragment.app.FragmentManager.checkStateLoss(FragmentManager.java:1844) at androidx.fragment.app.FragmentManager.enqueueAction(FragmentManager.java:1884) at androidx.fragment.app.BackStackRecord.commitInternal(BackStackRecord.java:329) at androidx.fragment.app.BackStackRecord.commit(BackStackRecord.java:294) at androidx.fragment.app.DialogFragment.show(DialogFragment.java:260) at com.galazjukvadim.stackoverflowquestion.BaseFragment.openBottomSheet(BaseFragment.kt:52) at com.galazjukvadim.stackoverflowquestion.BaseFragment$onViewCreated$2.invoke(BaseFragment.kt:39) at com.galazjukvadim.stackoverflowquestion.BaseFragment$onViewCreated$2.invoke(BaseFragment.kt:39) at com.galazjukvadim.stackoverflowquestion.LoginActivity.initLoginListener$lambda-0(LoginActivity.kt:33) at com.galazjukvadim.stackoverflowquestion.LoginActivity.$r8$lambda$3dwuINVTP3WL69H0HgmUiCWJ7Dw(Unknown Source:0) at com.galazjukvadim.stackoverflowquestion.LoginActivity$$ExternalSyntheticLambda0.onFragmentResult(Unknown Source:2) at androidx.fragment.app.FragmentManager$LifecycleAwareResultListener.onFragmentResult(FragmentManager.java:256) at androidx.fragment.app.FragmentManager.setFragmentResult(FragmentManager.java:865) at com.galazjukvadim.stackoverflowquestion.LoginFragment.onViewCreated$lambda-0(LoginFragment.kt:30) at com.galazjukvadim.stackoverflowquestion.LoginFragment.$r8$lambda$PNHKtYyi4mi0uK7kLsV6wOurKW4(Unknown Source:0)
它引起了以下称为Activity state loss的问题。阅读以下文章:1、2我观察了预期的行为。我的 BaseFragment 和 MainActivity 已调用 onPause
,然后onSaveInstanceState
触发 throw IllegalStateException: Can not perform this action after onSaveInstanceState。
在这种情况下,它可以负担得起用于.commitAllowingStateLoss()
显示 BottomSheetDialogFragment。bottomSheetFragment.show(childFragmentManager, MyBottomSheetDialog.TAG)
但是通常使用的引擎盖下ft.commit();
有人知道解决方案吗?