解雇活动从服务开始并返回到之前打开的应用程序

时间:2013-11-06 20:08:02

标签: android android-intent android-activity

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

从服务中我启动了一个使用Intent.FLAG_ACTIVITY_NEW_TASK设置的活动,并且工作正常。问题在于我调用finish();

后用户如何解除此活动的行为
  1. 如果我在关注此活动时使用其他应用,一旦我将其解雇,Android会将我带到我应用的主要活动,而不是将我带回我之前使用的应用;
  2. 如果我的手机屏幕关闭且显示活动(我有唤醒锁定),则调用finish()并不会真正“完成”它。我的意思是,活动被发送到后台,所以我可以看到锁定屏幕,但活动仍然列在打开的应用程序列表中。我只能通过轻扫它来关闭它。
  3. 在这种情况下,这些是正常行为吗?有谁知道如何避免它们?

    谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

问题是我如何在清单中声明我的活动。为了正确得到这个,我必须在我的声明中包含android:excludeFromRecents =“true”。我还从intent-filter部分删除了我的主要活动。