我的应用程序中有两个流程。

流程1:

启动画面->活动A->活动B->活动C->活动A

流程2:

启动画面->活动C->活动A

解释以上内容;在流程1中,用户看到启动画面,进入主画面,进入登录画面,成功登录后,进入主画面。如果用户单击从主屏幕注销,则将其重定向到主屏幕。

在流程2中,该用户是旧用户,他看到了初始屏幕并直接看到了主屏幕。如果他注销,则应将其定向到主屏幕。

我面临的问题是,在流1中,一切都按预期工作。但是在流程2中,注销(活动C)后,主屏幕(活动A)没有打开。意图不起作用。

点击退出时:

@Override
            public void onClick(View v) {
                ((StudyStoryMain)getActivity()).logoutUser();
            }


方法:

public void logoutUser() {
        //Problem: the intent is getting called in case the user creates an account. But, if the user is already an existing user, the intent is nit working
        ParseUser.getCurrentUser();
        ParseUser.logOut();
        Intent i = new Intent(StudyStoryMain.this, HomeActivity.class);
        //logic to fix logout
//      i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        finish();
        startActivity(i);
    }


为什么意图在两种流程中都不起作用?

最佳答案

尝试这种方式:

Intent intent = new Intent(StudyStoryMain.this, HomeActivity.Class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish(); // Call once you redirect to another activity

09-04 03:52