【问题标题】:Android - detecting application launch from home or historyAndroid - 检测应用程序从家庭或历史启动
【发布时间】:2011-07-23 19:19:19
【问题描述】:

检测 Android“应用程序”何时从主屏幕/历史屏幕启动的最佳方法是什么?

基本上,我想要实现的是强制用户每次返回应用程序时登录到某些屏幕(即他们一旦登录就可以完全访问所有活动,但基本上我希望他们重新 -当他们通过在主屏幕上启动返回应用程序时进行身份验证)。

我知道之前有人问过类似的问题(即如何记录应用程序的启动)-但我所见过的还没有一个能够解决我的问题。欢迎所有想法...

【问题讨论】:

    标签: android android-activity count android-intent launch


    【解决方案1】:

    怎么样

        if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY )!=0) {
            Log.d(TAG, "Called from history");
        }
    

    ? 这使用了simple Intent flag

    【讨论】:

    • 有人可以评论这个答案的有效性吗?这对其他比我更有经验的 Android 开发人员有意义吗?
    • 您可以简单地对其进行测试 - 可在我们所有的设备上运行。如果没有,请告诉我。
    • 请注意,这涉及应用程序启动,而不是从后台获取正在运行的应用程序。
    • FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY 标志在从最近或历史启动后重新创建活动时设置,但如果仅恢复活动,则不会设置 FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY。以上代码将返回 false stackoverflow.com/questions/24065146/…
    【解决方案2】:

    检测 Android“应用程序”何时从主屏幕/历史屏幕启动的最佳方法是什么?

    你不能,AFAIK。

    基本上,我想要实现的是强制用户每次返回应用程序时登录到某些屏幕(即他们一旦登录就可以完全访问所有活动,但基本上我希望他们重新 -当他们通过在主屏幕上启动返回应用程序时进行身份验证)。

    请使用合理、用户友好的登录系统。例如,如果您觉得他们的登录凭据根据时间已过时,则强制他们再次登录。您可以通过检查 onCreate() 中的凭据来执行此操作,如果它们已过时,请致电 startActivity() 以启动您的登录活动(或弹出登录对话框,或以任何方式登录)。

    当然,更好的方法是完全跳过登录。除非这是“密码保险箱”、银行应用程序或其他需要高于平均安全性的东西,否则您不需要他们登录,如果他们认为您的登录要求没有必要,您的用户会感到恼火。大多数移动应用程序不需要身份验证。

    根据他们到达活动的方式强制登录是用户敌对的。您是在告诉那些屈尊将手机用于您的应用以外的事情的用户,他们是二等公民。

    【讨论】:

    • 感谢您的回复 - 不幸的是,这是针对客户的,它需要相当高的安全级别(数据非常敏感)。我认为我的搜索没有办法,而基于时间的会话正是我要去的地方。
    • 客户又一次用飞溅的方式毁了一天>_
    • 你可以在activity暂停的时候关闭session,打开一个flag来关闭activity,在暂停的时候关闭activity。
    • 我也担心客户不会接受 CommonWare 的回答。@Warpzit
    【解决方案3】:

    只需创建一个没有内容视图的树桩活动,并在应用程序启动时启动其他活动

    例如将以下内容放入 onCreate:

    Class<?> myclass;
    
    if(isTimeForActivity1){
        myclass = Activity1.class;
    }else if(isTimeForActivity2){
        myclass = Activity2.class;
    }
    
    startActivity(new Intent(this, myclass));
    finish();
    

    【讨论】:

      【解决方案4】:

      尝试查看具有设计良好解决方案的“OI Safe”应用程序(我不知道代码是否也设计得很好,但是,你会看:p)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-01
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多