Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Intent';s堆栈-登录屏幕和主菜单_Android_Android Activity_Android Intent_Flags - Fatal编程技术网

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
时,我将此标志添加到Intent
Intent.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();