Mar*_*era 2 flags android android-intent android-activity
当我有两个活动
Activity A, B;
// A stands for Login Screen
// B stands for Main Application Screen
Run Code Online (Sandbox Code Playgroud)
应用程序开始A,然后用户执行登录,他将被指向B
当我启动时,B我将此标志添加到Intent,Intent.FLAG_ACTIVITY_CLEAR_TOP但是当我完成时,B我希望它是最后一个活动并退出应用程序.
而不是我期望的,A被带到前面,用户仍然在登录屏幕上.
我应该A从Bas 开始startActivityForResult并B用作整个应用程序的主要活动吗?
或者旗帜不能正常运作?
不要打扰意图标志.当活动A在成功登录后启动活动B时,只需进行A呼叫即可finish().
另一种稍微更复杂的方法是将B作为主要活动,在B的onCreate方法中,为结果启动活动A,这应该是一些通过/失败标志.当活动A完成时(无论是成功登录,失败还是用户刚刚退出),活动B onActivityResult将根据返回的值确定是继续还是完成.这是有效的,因为根据文档:
作为一种特殊情况,如果在活动的初始onCreate(Bundle savedInstanceState)/ onResume()期间使用requestCode> = 0调用startActivityForResult(),则在从已启动的活动返回结果之前,将不会显示您的窗口.这是为了避免在重定向到另一个活动时出现明显的闪烁.