Java 概述按钮开关活动

Java 概述按钮开关活动,java,android,firebase,firebase-authentication,ondestroy,Java,Android,Firebase,Firebase Authentication,Ondestroy,我有两个活动活动活动A和活动B。我的应用程序在活动A中启动,活动A上有一个按钮指向活动B。当我在活动B中时,我按概览按钮(方形按钮)并选择我的应用程序。当我的应用程序加载时,活动B将被销毁,并加载到活动A中。发生了什么,如何保存设置并加载到活动B中 扩展而言,我有一个应用程序,可以加载到firebase身份验证中,然后在firebase数据库上运行。按下概览按钮时,如何保存状态?我是否需要使用firebase身份验证保存任何内容,还是只保存访问和管理firebase数据库所需的所有数据 我在上面

我有两个活动活动活动A和活动B。我的应用程序在活动A中启动,活动A上有一个按钮指向活动B。当我在活动B中时,我按概览按钮(方形按钮)并选择我的应用程序。当我的应用程序加载时,活动B将被销毁,并加载到活动A中。发生了什么,如何保存设置并加载到活动B中

扩展而言,我有一个应用程序,可以加载到firebase身份验证中,然后在firebase数据库上运行。按下概览按钮时,如何保存状态?我是否需要使用firebase身份验证保存任何内容,还是只保存访问和管理firebase数据库所需的所有数据

我在上面看了几段视频,他们在谈论屏幕旋转和保存状态,但几乎没有关于overview按钮的信息

谢谢,
Reinaldo

如何将当前活动保存为共享首选项中的值,然后在活动a的onCreate方法中检查该值。您可以使用一个switch语句重定向到用户之前参与的任何活动

活动A如下所示:

public class A extends AppCompatActivity {

private String currentActivity;
private final String CURRENT_ACT = "current activity";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
    currentActivity = sharedPreferences.getString(CURRENT_ACT, "A");

    switch (currentActivity){
        case "A":
            break;

        case "B":
            Intent intent = new Intent(this, B.class);
            startActivity(intent);
            break;
    }

}
public class B extends AppCompatActivity {

private String currentActivity;
private final String CURRENT_ACT = "current activity";

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    currentActivity = "B";

    SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(CURRENT_ACT,currentActivity);
    editor.commit();

}
}

B看起来像这样:

public class A extends AppCompatActivity {

private String currentActivity;
private final String CURRENT_ACT = "current activity";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
    currentActivity = sharedPreferences.getString(CURRENT_ACT, "A");

    switch (currentActivity){
        case "A":
            break;

        case "B":
            Intent intent = new Intent(this, B.class);
            startActivity(intent);
            break;
    }

}
public class B extends AppCompatActivity {

private String currentActivity;
private final String CURRENT_ACT = "current activity";

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    currentActivity = "B";

    SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(CURRENT_ACT,currentActivity);
    editor.commit();

}

}

我需要保存什么?我担心在活动B有了它的onDestroy方法之后,活动A有了它的OnCreate方法。我保存了将在活动A中访问的数据引用。如果我现在在活动B中,这次我关闭应用程序。活动B通过ondestroy方法销毁并保存数据,因为应用程序正在关闭。现在我打开应用程序,它加载活动A,它调用oncreate方法,该方法使用保存的首选项返回活动B。这是不应该发生的。用我的意思的示例编辑好了,它工作了!谢谢我还有一个问题,我有一个运行片段1和片段2的活动A。如果我想恢复片段,我应该将共享首选项放在哪里?感谢再次创建您拥有的每个片段或活动时,将一个新值保存到共享首选项中,就像您对活动b所做的那样。例如,在片段1中保存C,在片段2中保存D。然后,向活动a中的switch语句添加更多事例,以重定向与活动bthanks相同的方式,这是有效的。如果我有活动A,片段1和2,片段1有一个回收器视图,我想保存它的位置,该怎么办?我该怎么做?如蒙惠顾,不胜感激。谢谢