如何保持活动的状态?

时间:2013-05-08 13:03:52

标签: android

我正在尝试在android中保存活动的状态。基本情景是有2个活动A和B.Activity A包含2个edittext字段。用户输入一些值并通过intent移动到活动B.当用户回到活动A(意图我提供了一个后退按钮)我需要在用户输入的2个edittext字段中显示这些值(即保持活动状态A)。我也不想使用共享偏好或者将这些字段设为静态字段。 我使用了以下代码,但没有帮助:

  @Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.manual_entry);
            edittext1=(Edittext)findViewById(R.id.edittext1);
    }

@Override
    protected void onSaveInstanceState(Bundle savedInstanceState)
    {
          super.onSaveInstanceState(savedInstanceState);
          savedInstanceState.putString("cardvalue_saved_inst", value_card_manuallyentered);
    }




@Override
    public void onRestoreInstanceState(Bundle savedInstanceState) 
    {
      super.onRestoreInstanceState(savedInstanceState);
      value_savedinstance = savedInstanceState.getString("cardvalue_saved_inst");
      Log.e("value_savedinstance",""+value_savedinstance);
      edittext1.setText(value_savedinstance);
    }

2 个答案:

答案 0 :(得分:0)

ActivityA中,如果您启动ActivityB并且未自行调用finish(),则ActivityB完成时(当用户按下BACK按钮或其他方式时),{{ 1}}将以与其相同的状态显示。这只是标准的Android行为,您不需要做任何特别的事情。

如果暂停的活动恢复,则

ActivityA 未被调用(这是onRestoreInstanceState()启动ActivityAActivityB然后完成的常见情况)。

ActivityB 仅被称为如果Android杀死了您的活动(例如在定向更改期间)或者您的进程被终止。在这种情况下,当用户返回您的活动时,Android会创建活动的新实例,然后调用onRestoreInstanceState()

答案 1 :(得分:0)

我必须简单地在活动B中调用finish()并且它有效。