2011-03-27 53 views
11

什么是当一个Android“应用程序”已经从主屏幕/历史画面展开检测的最佳方式?Android的 - 从家庭或历史检测应用程序启动

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

我才知道类似的问题已经被问(即如何登录一个应用程序的启动) - 但没有,我已经看到了尚未能解决我的问题。所有的想法欢迎...

回答

14

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

你不能,据我所知。

基本上,我想要做到的,是强制用户每次他们回来到应用时,登录到特定的屏幕(即他们为所有活动完全访问一次登录,但基本上我希望他们当他们通过主屏幕上的启动回到应用程序时重新进行身份验证)。

请使用一个明智的,人性化的登录系统。例如,如果您觉得他们的登录凭据基于时间过期,则强制他们再次登录。您可以通过检查onCreate()中的凭据来完成此操作,如果它们已过期,请致电startActivity()启动您的登录活动(或弹出您的登录对话框,或者任何您登录它们的方法)。

当然,更好的方法是完全跳过登录。除非这是一个“密码安全”,银行应用程序或其他需要高于平均水平的安全性的东西,否则您不需要它们登录,如果用户觉得您的登录需求是不必要的,那么您的用户会感到恼火。大多数移动应用程序不需要认证。

强制基于他们如何达到活性的登录是用户敌意。你告诉用户,除了你的应用程序之外,他们使用他们的手机用于他们是二等公民。

+1

感谢您的回应 - 不幸的是,这是一个客户端,它需要相当高的安全级别(数据非常敏感)。我不认为我的搜索有一种方法,基于时间的会话正是我前往的地方。 – Codz 2011-03-27 18:51:44

+2

又一次的客户用splash> _ <毁了这一天,需要找到解决方法。 – Warpzit 2014-06-05 09:36:21

+0

您可以在活动暂停时关闭会话,打开一个标志关闭活动,并在暂停时关闭活动。 – pojomx 2015-02-27 16:35:02

0

尝试看看其中有一个精心设计的解决方案“OI安全”应用程序(我不知道如果代码是精心设计过,但是,你将看到:P)

2

只需创建一个不具有内容视图和树桩活动启动应用等活动开始

如把下列的onCreate:

Class<?> myclass; 

if(isTimeForActivity1){ 
    myclass = Activity1.class; 
}else if(isTimeForActivity2){ 
    myclass = Activity2.class; 
} 

startActivity(new Intent(this, myclass)); 
finish(); 
12

什么

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

? 这使用了一个simple Intent flag

+0

有人可能会对此答案的有效性发表评论吗?对于其他更有经验的Android开发人员来说,这比其他人有意义吗? – marienke 2013-11-29 12:23:54

+1

您可以简单地对其进行测试 - 适用于我们的所有设备。如果没有,请通知我。 – bk138 2013-12-03 09:55:32

+1

这对我不起作用。 – 2015-02-27 12:46:46

相关问题