Android Intent';s堆栈-登录屏幕和主菜单
当我有两项活动时Android Intent';s堆栈-登录屏幕和主菜单,android,android-activity,android-intent,flags,Android,Android Activity,Android Intent,Flags,当我有两项活动时 Activity A, B; // A stands for Login Screen // B stands for Main Application Screen 应用程序以A开始,然后用户执行登录,他将被指向B 当我启动B时,我将此标志添加到IntentIntent.flag\u ACTIVITY\u CLEAR\u TOP中,但当我完成B时,我希望它是最后一个活动并退出应用程序 与我所期望的不同,一个被带到前面,用户再次出现在登录屏幕上 我是否应该从B开始A作为sta
Activity A, B;
// A stands for Login Screen
// B stands for Main Application Screen
应用程序以A
开始,然后用户执行登录,他将被指向B
当我启动B
时,我将此标志添加到IntentIntent.flag\u ACTIVITY\u CLEAR\u TOP
中,但当我完成B
时,我希望它是最后一个活动并退出应用程序
与我所期望的不同,一个
被带到前面,用户再次出现在登录屏幕上
我是否应该从B
开始A
作为startActivityForResult
并使用B
作为整个应用程序的主要活动
或者标志没有正常工作?不要为意图标志费心。当活动A在成功登录后启动活动B时,只需调用
finish()
另一种稍微复杂一点的方法是让B成为您的主要活动,在B的onCreate
方法中,启动活动A以获得一个结果,该结果应该是一些通过/失败标志。当活动A完成时(在成功登录、失败或用户刚刚退出时),活动B根据返回的值在活动结果中确定是继续还是完成。这是因为,根据:
作为一种特殊情况,如果在活动的初始onCreate(Bundle savedInstanceState)/onResume()过程中调用startActivityForResult(),且requestCode>=0,则在从启动的活动返回结果之前,不会显示窗口。这是为了避免重定向到其他活动时出现可见闪烁
使用完成方法:
Intent lIntent = new Intent();
lIntent.setClass(this, MainActivity.class);
startActivity(lIntent);
finish();