从其他活动返回时为什么活动的数据发生了变化

时间:2013-11-17 12:48:56

标签: android android-activity

很抱歉我的描述不好,我的应用程序在Activity-1中有一个片段。在片段中,我将一些数据添加到Application类的子类的对象中(用于保存全局数据)。然后意图Activity-2(android:theme =“@ android:style / Theme.Dialog”)。所以Activity-1仍然可以看到。当Activity-2完成时,出现错误,我在意图活动之前添加的数据 - 2错过并转为原始状态。 这是我的问题:

  1. Application类只有一个实例,所以我可以在其中保存数据,但为什么数据丢失?
  2. 我可以将我的数据保存在onPause()吗?

1 个答案:

答案 0 :(得分:0)

通常在从另一个活动调用和对话活动时,最好使用startActivityForResult:

        Intent intent = new Intent(this, ActivityDialog.class);
        startActivityForResult(intent, 0); //0 = requestCode

然后是主要活动中对话框的回调:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 0){  
       // Do your thing 
     }
}

这应该在调用对话框时保持主要活动的状态。

但是,如果没有看到您的代码,我无法帮助您,也不确定您是否正在寻找这些代码。