0

我有一个由警报触发的 BroadcastReceiver 启动的服务。在这种情况下,我的应用程序的所有活动都没有运行,甚至不必启动主要活动。

从服务中,我开始使用 Intent.FLAG_ACTIVITY_NEW_TASK 设置活动,并且工作正常。问题在于我调用完成()后用户如何解除此活动的行为;

  1. 如果我在关注此活动时正在使用另一个应用程序,一旦我关闭它,Android 会将我带到我的应用程序的主要活动,而不是让我回到我之前使用的应用程序;
  2. 如果我的手机屏幕关闭并且显示活动(我有一个唤醒锁),则调用 finish() 并不能真正“完成”它。我的意思是,活动被发送到后台,所以我可以看到锁定屏幕,但活动仍然列在打开的应用程序列表中。我只能通过滑动它来真正关闭它。

在这种情况下,这些行为是否正常?有谁知道如何避免它们?

谢谢你。

4

2 回答 2

1

对于第一个问题,您可能必须显示一些代码,如您如何开始该特定活动以及完成时执行的代码。可能是在您的预期活动实际被带到前面之前,家庭活动就开始了。当您关闭所需的活动时,它会再次出现在前面。

对于第二个问题,这是正常行为。它确实发生在我的所有应用程序中。不确定是否仅适用于新版本的 Android。不知道为什么要避免它们。

于 2013-11-07T00:53:30.313 回答
0

问题是我如何在清单中声明我的活动。为了正确地做到这一点,我必须在我的声明中包含 android:excludeFromRecents="true" 。我还从意图过滤器部分删除了我的主要活动。

于 2013-11-07T13:56:27.077 回答