清除android堆栈并始终在某些活动上启动应用程序
我有一个应用程序,它的密码保护,以阻止未经授权的访问数据 我要问的是: 当应用程序使用home按钮关闭,然后重新打开时,我需要它转到LoginActivity,我想我已经使用android:launchMode=“singleTask”对其进行了排序 但是如果我按下后退按钮,它会将我带回到菜单,而无需再次登录-因此它会绕过密码清除android堆栈并始终在某些活动上启动应用程序,android,passwords,android-activity,stack,Android,Passwords,Android Activity,Stack,我有一个应用程序,它的密码保护,以阻止未经授权的访问数据 我要问的是: 当应用程序使用home按钮关闭,然后重新打开时,我需要它转到LoginActivity,我想我已经使用android:launchMode=“singleTask”对其进行了排序 但是如果我按下后退按钮,它会将我带回到菜单,而无需再次登录-因此它会绕过密码 您能提供帮助吗?在您的活动中,在按home键进入后台之前,设置一个用户已注销的标志或清除会话 然后在恢复活动时,检测用户标志是否仍然登录或会话是否仍然有效。如果无效。然后
您能提供帮助吗?在您的活动中,在按home键进入后台之前,设置一个用户已注销的标志或清除会话 然后在恢复活动时,检测用户标志是否仍然登录或会话是否仍然有效。如果无效。然后发送一个意图来打开您的登录活动
protected void onCreate(Bundle savedInstanceState) {
MyApplication app = ((MyApplication) getApplicationContext());
if (!app.loggedIn) {
Intent intent = new Intent(this, LoginActivity.class);
//go to old activity
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}
因此,即使按back键,恢复的活动也将验证用户是否仍然登录或会话是否仍然有效。创建一个带有指示用户是否登录的标志的自定义应用程序类
public class MyApplication extends Application {
boolean loggedIn;
}
在活动中,您可以检查用户是否已登录。如果不是,则返回登录活动
protected void onCreate(Bundle savedInstanceState) {
MyApplication app = ((MyApplication) getApplicationContext());
if (!app.loggedIn) {
Intent intent = new Intent(this, LoginActivity.class);
//go to old activity
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}
谢谢你。你能帮我举一个可能需要的代码示例吗?