片段的onSaveInstanceState之后做的工作

时间:2013-06-30 19:18:08

标签: android

我有一个片段,可以在onSaveInstanceState方法中保存用户数据。 我需要在用户完成活动时获取此数据并在下一个意图中显示它。 目前我的实施顺序是:

  1. 用户点击关闭按钮
  2. 计算开始依赖存储在onSaveInstanceState的prev调用中的数据,然后启动新意图
  3. 调用当前片段的onSaveInstanceState,计算中遗漏信息
  4. 新活动显示
  5. 旧的活动onDestroy称为
  6. 我考虑过在onDestroy中开始我的计算和新活动。然后我需要一种机制来销毁当前的Activity。 或者我可以在进行计算之前以某种方式调用当前线程中所有剩余的onSaveInstanceState方法调用。 什么会更好还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

对于我而言,这听起来像是一个奇怪的设计。对于这个用例,我会这样做:

  1. 用户按下abitratry按钮(在你的情况下关闭)
  2. click listener获取所需数据(与onSaveInstanceState中获取数据的方式相同)
  3. 启动一个asynctask如果长度操作并显示进度条或在UI线程上进行计算,如果是微不足道
  4. 以新活动的计算结果开始意图
  5.   

    我有一个片段,可以在onSaveInstanceState方法中保存用户数据。我需要在用户完成活动时获取此数据并将其显示在下一个意图中。

    您是否有任何理由需要特别来自onSaveInstanceState()方法的数据?

      

    考虑在onDestroy中开始我的计算和新活动。然后我需要一种机制来销毁当前的Activity。

    如果您在onDestroy()中调用某些内容,则无需强制销毁该活动,因为该活动已在进行中。 (顺便说一句,完成()会这样做)。从那个公寓,onDestroy应该做清理程序,例如免费资源或关闭流,而不是用于调用新活动