Android - 从家庭或历史中检测应用程序启动

Cod*_*odz 14 android count launch android-intent android-activity

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

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

我知道之前已经问过类似的问题(例如如何记录应用程序的启动) - 但我所看到的都没有能够解决我的问题.欢迎所有想法......

bk1*_*138 15

关于什么

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

?这使用一个简单的Intent标志.

  • 当活动是越来越推出后重建最近或历史,但如果只活动得到恢复FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY将不会设置FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY标志.上面的代码将返回false http://stackoverflow.com/questions/24065146/flag-activity-launched-from-history-not-set-in-nexus-10-android-4-4-2 (2认同)

Com*_*are 14

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

你不能,AFAIK.

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

请使用合理,用户友好的登录系统.例如,如果您认为他们的登录凭据是基于时间过时的,那么强制他们再次登录.您可以通过检查凭据来完成此操作onCreate(),如果它们已过时,请调用startActivity()以启动您的登录活动(或弹出登录对话框,或者您登录的任何方式).

当然,更好的方法是完全跳过登录.除非这是"密码安全",银行应用程序或其他需要高于平均安全性的内容,否则您无需登录,如果您的用户认为您的登录要求不必要,他们会感到烦躁.大多数移动应用程序不需要身份验证

基于他们如何到达活动而强制登录是用户敌对的.您告诉用户设法将他们的手机用于除您的应用之外的其他东西,他们是二等公民.

  • 然而,客户再次破坏了这一天的飞溅> _ <,需要找到一个解决方法. (2认同)
  • 我也担心客户不会选择CommonWare的答案.@ Warpzit (2认同)