【发布时间】:2017-09-13 19:25:11
【问题描述】:
我的 Android 应用程序中有许多“内部”活动,我只想通过我编写的代码从应用程序内部开始。这些“内部”活动在 Android 清单文件中没有意图过滤器标记。我有一个名为 SplashActivity 的活动,我将其用作具有典型启动意图过滤器的初始屏幕:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
我希望/期待每当 Android 启动我的应用并创建我的自定义应用程序对象时,它总是会启动我的 SplashActivity。但是,我的一些用户遇到了启动,其中启动了我没有意图过滤器的“内部”活动之一。我相信该活动通常是应用程序先前调用中使用的最后一个活动。我自己无法重现该问题。但是,在某些情况下,Android 会启动我的应用程序,创建我的自定义应用程序对象,但启动我的一个没有意图过滤器的内部活动。 Android在什么情况下会这样做?
要轻松重现 Android 应用程序启动启动没有意图过滤器的 Activity 的场景,请首先将您的应用程序打开到任何此类 Activity。按主页按钮。然后使用 Android 设备监视器 (DDMS) 查找正在运行您的应用程序的进程并停止/终止该进程。然后启动您的应用程序。 Android 将创建您的 Application 对象,但将启动/恢复上次显示的活动,而不是使用 MAIN LAUNCHER 意图过滤器启动活动。
【问题讨论】:
标签: android android-activity intentfilter android-launcher