2017-05-05 132 views
0

我为我的应用程序实施了启动屏幕。我将启动屏幕活动作为启动活动。启动活动执行启动工作(加载数据等),然后启动“真实”主要活动。启动屏幕从第三方应用程序启动时重新显示

问题是:我正在使用能够启动其他应用程序的第三方应用程序。假设我的应用程序已经在运行(它已经过了启动画面,并且已经到了真正的主屏幕)。然后按主页按钮将应用程序置于后台。然后我做了一些事情,导致第三方应用程序启动我的应用程序。我想要的是我的应用程序可以简单地恢复(如果我已经从手机的常规启动器中轻敲应用程序图标)。相反,它会再次启动启动画面,并且我的初始化代码再次运行,这是我不想要的。

由于这是启动我的应用程序的第三方应用程序,我没有能力改变它如何启动我的应用程序。我假设它只是查询包管理器以获取启动意图并启动它。所以,我需要找到一种方法在我的应用程序中解决这个问题。

如果我的“真实”主要活动已经在运行,是否有方法可以从我的启动画面的onCreate方法中找到?如果是,跳过初始化代码并将现有主要活动放到前台?

回答

0

在应用程序类中保留一个静态布尔值。

初始化完成后,将其设置为true。
当启动画面开始时,检查布尔值,如果为true,直接进入主要活动而不执行任何逻辑,并立即完成飞溅活动。
如果为false,则假定它是冷启动,并且需要运行初始化代码。

无法从Android应用程序中查看Activity堆栈,因此您无法检查Main活动是否已在运行。

第三方应用程序也无法检查您的应用程序是否正在运行,然后根据该应用程序启动不同的活动。

相关问题