假设您有一个与网络应用相关的 Android 应用,需要用户登录才能使用它。用户在登录屏幕活动中登录,然后继续进行其他活动。每次用户启动 Activity 时,应用程序都会再次检查他的登录凭据(凭据存储在某处的中央数据库中)。
当用户从一个活动跳转到另一个活动时,让我们假设用户的登录凭据已从服务中撤消。下次用户访问 Activity 时,应用程序将看到他不再具有访问权限。该应用程序现在应该将用户踢回登录屏幕活动。
但是由于在用户使用该应用程序时,该应用程序已经创建了一堆活动,那么您如何获得登录屏幕。您是否杀死/销毁所有活动,直到您到达登录屏幕活动(应该是应用程序堆栈底部的活动)?
或者您是否开始一个新的登录屏幕活动并直接进行该活动?
FLAG_ACTIVITY_CLEAR_TOP
或者我应该通过意图调用登录屏幕活动?
在用户能够第二次登录后(假设他恢复了他的凭据),如果 Activity 现在是堆栈中唯一的一个,按下后退按钮会将他带出应用程序,而不是返回到在他的证书被吊销之前他在做什么。最好的方法是什么?