【问题标题】:Android viewModel savedStateHandleAndroid viewModel savedStateHandle
【发布时间】:2020-02-14 18:50:45
【问题描述】:

这更像是一个概念性问题。

Android 最近在 viewModel 中引入了在进程死亡期间处理状态的概念,而不是以前在 Activity 或 Fragment 中的savedInstanceState

我的问题是如何测试这个进程死亡?如果我正确理解文档,则进程死亡恰好是Android在后台不再使用应用程序时由于内存已满而杀死应用程序。

当用户从 RAM 中杀死应用程序时,viewModel 还会保存状态吗?这样我就可以在用户再次打开应用程序时检索状态。

【问题讨论】:

  • 如果您正在运行调试应用程序构建,您可以从 Android Studio(红色方块)停止应用程序,然后通过在您的设备上打开它来恢复它。开发者选项还提供其他方法。

标签: android android-livedata android-mvvm


【解决方案1】:

  1. 启用“不保留活动”
  2. 启动您的应用
  3. 点击主页按钮
  4. 您的应用将被立即终止(Activity.onDestroy 调用)

【讨论】:

  • 谢谢...当应用从 RAM 中被杀死时,状态会被保存吗?
  • @Maria 默认不是。您至少需要像捆绑一样获取/设置保存的状态,检查一下:medium.com/androiddevelopers/… SavedStateHandle.getLiveData 是我想说的更好的选择,获取/设置 LiveData 值(kotlin data class + @Parcelize ) 像往常一样,数据被透明地保存/恢复。
【解决方案2】:

以下步骤有助于测试视图模型保存状态库的智能

Step 1: After completing the source code changes, build and run the APP.
Step 2: Ensure UI of Activity/Fragment has data populated in it.
Step 3: Move the App to background by clicking Home Button.
Step 4: Now Open the Logcat Tool window and Terminate the APP.
Step 5: Relaunch the APP from the Device or Emulator.
Step 6: You should see all the data pre-populated in UI.

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    相关资源
    最近更新 更多