我有一个主要活动 A,它将调用另一个活动 B,其 oncreate() 如下所述。当我在活动 B 中按主页按钮并按最近使用的应用程序时,从未设置标志 FLAG_ACTIVITY_LAUNCCHED_FROM_HISTORY。我使用的是三星 Nexus 10 (Android 4.4.2)。
protected void onStart() {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0)
{
//Call Main Activity.
}
else
{
//Continue creating this activity
}
}
当我将 if 块放在 onCreate() 中时,当我从最近的应用程序打开我的应用程序时,它永远不会被调用。
EDIT 1:
让我解释一下我想做什么。每当用户使应用程序进入后台(锁定屏幕、按主页按钮等)时,我想在应用程序进入前台时调用特定的活动(用于身份验证)。
我认为你很困惑。如果您的主要活动启动 ActivityB,那么ActivityB.onCreate()
将被调用并且Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
不会被设置。现在,ActivityB 位于前台,您可以按 HOME 按钮。该任务被推到后台。稍后,用户打开最近任务列表并选择您的应用程序。该任务(ActivityB 在顶部)被简单地带到前台。活动B没有被重新创建, 所以Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
仍然不会被设置。 ActivityB.onCreate()`不再被调用.
Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
仅当用户从最近任务列表中选择应用程序时 Android 创建您的 Activity 的新实例时,才会设置。在大多数情况下,这将是当用户在所有活动完成后再次启动您的应用程序(从头开始)时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)