在不丢失数据的情况下切换活动

Switching between activities without losing data

从 activity 2 返回到 1 后按返回按钮时,我一直在丢失数据。

将数据传递给 activity 2 时,我正在使用

   intent = new Intent(getApplicationContext(), secondactivity.class);
   startActivity(intent);

启动第二个 activity。按下后退按钮时不使用sharedpreference是否可以不丢失数据?

新建一个class

public class myClass{
    public static String myData;
}

在你的activity

myClass.myData = "Set a text";

然后在你的每一个地方调用它activity

String myData = myClass.myData;

启动第二个 activity 时,您可以指定您期望 activity:

的结果
int LAUNCH_SECOND_ACTIVITY = 1
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, LAUNCH_SECOND_ACTIVITY);

然后,在您的第二个 activity 中,您可以覆盖 onBackPressed()

@Override
public void onBackPressed() {
    Intent data = new Intent();
    // add data to Intent 
    setResult(Activity.RESULT_OK, data);
   super.onBackPressed(); }

可能与 How do I pass data between activities when I press back button in Android?

重复

您可以将数据存储在应用程序中 class 并在任何地方使用它

创建 class:

public class MyCustomApplication extends Application {
   String myData = "";
}

在清单中添加 class 名称为 android:name

<application 
   android:name=".MyCustomApplication"
   android:icon="@drawable/icon" 
   android:label="@string/app_name" 
...>

从任何 activity

中像这样访问它
 String myData = ((MyCustomApplication)getApplication()).myData; 
((MyCustomApplication)getApplication()).myData = "new value";