【问题标题】:Clear android stack and always start app on certain activity清除 android 堆栈并始终在某些活动上启动应用程序
【发布时间】:2014-05-06 03:35:56
【问题描述】:

我有一个应用程序,它受密码保护以阻止未经授权的数据访问。

我需要问的是:

当应用程序使用主页按钮关闭,然后重新打开时,我需要它进入 LoginActivity,我想我已经使用 android:launchMode="singleTask" 对其进行了排序

但是如果我按下后退按钮,它会带我回到菜单,而无需再次登录 - 所以它会绕过密码?

你能帮忙吗?

【问题讨论】:

    标签: android passwords android-activity stack


    【解决方案1】:

    创建一个自定义应用程序类,带有一个指示用户是否登录的标志。

    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);
         }
    }
    

    【讨论】:

      【解决方案2】:

      在您的活动中,在按主页进入后台之前,设置用户已注销或清除会话的标志。

      然后 onResume 你的活动,检测用户的标志是否仍然登录或会话仍然有效。如果无效。然后只需发送一个意图来打开您的登录活动。

      因此,即使您按下返回,恢复的活动也会验证用户是否仍然登录或会话仍然有效。

      【讨论】:

      • 谢谢。您能否提供一个可能需要的代码示例?
      猜你喜欢
      • 2011-10-27
      • 1970-01-01
      • 2012-04-20
      • 2011-03-29
      • 1970-01-01
      • 2015-05-13
      • 2012-06-01
      • 1970-01-01
      • 2011-09-19
      相关资源
      最近更新 更多