Java 保存活动-Android
我有一个android应用程序,它有两个活动-Java 保存活动-Android,java,android,android-studio,android-activity,onsaveinstancestate,Java,Android,Android Studio,Android Activity,Onsaveinstancestate,我有一个android应用程序,它有两个活动-activity\u login.xml和activity\u dashboard.xml 当用户第一次打开应用程序时,它应将他们带到活动\ u登录,然后,他们应登录并转到带有注销按钮的活动\ u仪表板 如果他们按下“注销”按钮,则应再次返回“活动”登录。如果他们按下后退按钮,它将退出应用程序。当他们按下应用程序图标时,它会将他们直接带到activity\u dashboard 当按下应用程序图标时,我不知道如何保存活动并返回到特定的活动。如果您已登
activity\u login.xml
和activity\u dashboard.xml
当用户第一次打开应用程序时,它应将他们带到活动\ u登录
,然后,他们应登录并转到带有注销按钮的活动\ u仪表板
如果他们按下“注销”按钮,则应再次返回“活动”登录。如果他们按下后退按钮,它将退出应用程序。当他们按下应用程序图标时,它会将他们直接带到activity\u dashboard
当按下应用程序图标时,我不知道如何保存活动并返回到特定的活动。如果您已登录,您必须在启动intent to activity_dsahboard后调用finish()。在这种情况下,如果您仍在登录,您将直接转到activity_dashboard。下面是一个示例
Intent I = new Intent(this,ActivtyDashBoard.class);
startActivity(i);
finsih();//place it after you launch intent to go to
//activity_dashboard
如果要存储登录状态,使用共享首选项保存标识符,该标识符的值将在成功身份验证时设置。只需创建一些逻辑并在共享首选项中保存标识符。这种方式不适合professiona应用程序。这样做需要大量复杂的机制。很简单,您需要使用共享首选项来存储登录状态解除值如果使用登录时为false,则会将值更改为true,每次打开应用程序时,只需检查状态并进行相应导航,当用户单击“上一步”按钮时,在恢复方法中签入该用户是否登录,然后打开该活动 用这个 观察仪表板终端。 使用startActivityForResult()启动仪表板活动,并观察仪表板活动是如何完成的
这可能会帮助你:@Mustansir这不是我想要的答案。他的问题是当用户仍在应用程序中时保存活动。我的任务是在用户退出应用程序后保存活动。这就是为什么人们经常添加一个“启动”屏幕来决定去哪一个to@AnikethChavare您在活动中具体保存了什么?以及,我应该在哪里添加
finish()代码>在我的代码中?请再次阅读我的答案。。如果您已登录,您只需致电finush:更新示例代码请将我的答案标记为已接受,如果有帮助,请向上投票。。评论如果你有疑问,实际上,它不起作用。如果我清除手机中的活动并打开我的应用程序,它将不会进入仪表板活动。请更正您的逻辑。。如果您正确地检查是否登录,然后在这种情况下使用代码,则不可能不工作。可能在您的登录活动中,您没有正确地检查是否登录。请仔细检查您的代码
public class LoginActivity extends AppCompatActivity {
private Button login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
login = findViewById(R.id.login);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(LoginActivity.this, DashBoard.class);
startActivityForResult(intent, 9000);
}
});
}
@Override
public void onActivityResult(int req, int res, Intent result) {
super.onActivityResult(req, res, result);
if(res== Activity.RESULT_CANCELED){
finish();
}
}
}
public class DashBoard extends AppCompatActivity {
private Button logout;
@Override
public void onCreate(Bundle savecInstanceState){
super.onCreate(savecInstanceState);
setContentView(R.layout.dash_board);
logout = findViewById(R.id.logout);
logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setResult(Activity.RESULT_OK);
finish();
}
});
}
}