2013-10-27 339 views
0

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

+0

使用SharedPreferences。 –

+0

你需要做的是保存计时器值并给计时器加上cacel。当方向改变时,活动被破坏并重新创建。所以取消定时器并使用保存的值启动定时器。 – Raghunandan

+0

@Brontok sharedprefereces用于原语,那么如何使用它来保存和恢复像timer这样的对象呢?它用于在用户会话中保留值。 – Raghunandan

回答

0

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

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

希望它有帮助。 (请记住,您可以使用支持包使用旧版Android版本的分段)