问题描述
我有2个活动,活动A和活动B。我的应用程序从活动A启动,活动A上有一个按钮,该按钮通向活动B。当我处于活动B中时,我按概述按钮(方形按钮),然后选择我的应用。当我的应用加载时,活动B被销毁,而是加载到活动A中。怎么回事,如何保存设置并将其加载到活动B?
通过扩展,我有一个应用程序,该应用程序加载到Firebase身份验证中,然后在Firebase数据库上运行。按下概览按钮时如何保存状态?我是否需要使用Firebase身份验证保存任何内容,还是只保存所有用于访问和管理Firebase数据库的数据?
我在上面观看了几个视频,他们在谈论屏幕旋转和保存状态,但是关于“概述”按钮的信息很少。
谢谢, 雷纳尔多
解决方法
如何将当前活动保存为共享首选项中的值,然后在活动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;
}
}
}
和B看起来像这样:
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();
}
}