【问题标题】:Restoring the state of the activity恢复活动状态
【发布时间】:2013-10-27 07:46:25
【问题描述】:

为了在重新创建活动后恢复活动的状态(例如在屏幕方向更改后),我实现了 onSaveInstanceState() 和 onRestoreInstanceState()。保存/恢复 int、double 等简单信息很简单。但是保存/恢复像 Timer 这样的对象呢?

【问题讨论】:

  • 使用 SharedPreferences。
  • 您需要做的是保存计时器值并取消计时器。当方向改变时,活动被销毁并重新创建。所以取消定时器并使用保存的值启动定时器
  • @Brontok sharedprefereces 适用于原语,那么如何使用它来保存和恢复计时器等对象?它用于在用户会话中保持值。
  • @Raghunandan 我的意思是以秒为单位保存时间。

标签: android screen-orientation


【解决方案1】:

您不能在活动参数或保存的实例数据中存储“活动”对象(如数据库连接)。这些机制旨在使应用程序可以完全停止,因此它仅适用于可以“序列化”并稍后恢复的内容。

你可以做的是使用片段。如果你添加一个没有 UI 的片段(检查here,寻找 “添加没有 UI 的片段”)并调用它setRetainInstance(true) 片段将重新附加到活动,在任何配置更改后仍然存在。

希望对您有所帮助。 (请记住,您可以通过支持包在旧 Android 版本中使用 Fragments)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多