首先,抱歉问题标题中的“上下文”,我不知道该使用哪个词。我通过单击另一个应用程序的 URL 成功启动了我的应用程序,但是当我启动任务管理器时,我意识到我的应用程序实际上并未加载:调用者应用程序持有活动。我想如何:
- 在不同的“上下文”中启动我的应用程序(再次抱歉,哪个更好?)
- 能够在我的应用程序已经加载的情况下重新加载它(比如重新启动它)。
太感谢了。
首先,抱歉问题标题中的“上下文”,我不知道该使用哪个词。我通过单击另一个应用程序的 URL 成功启动了我的应用程序,但是当我启动任务管理器时,我意识到我的应用程序实际上并未加载:调用者应用程序持有活动。我想如何:
太感谢了。
您可以通过将AndroidManifest.xml中的“ launchMode ”属性设置为“ singleTask ”或“ singleInstance ”来修改行为,两者都会导致您的 Activity 被创建为新任务的根。但是,如果 Activity 已经存在,它不会重新启动它,而是您应该处理回调。Activity.onNewIntent(Intent intent)
要了解有关 launchMode 的更多信息,请参见此处:http: //developer.android.com/guide/topics/manifest/activity-element.html#lmode
除了launchMode
Kai 提到的之外,您可能还想查看taskAffinity
and allowTaskReparenting
,这取决于您的应用程序的结构。
这是那里的摘录,似乎与您描述您的应用程序的方式相匹配:
例如,如果电子邮件消息包含指向网页的链接,则单击该链接会显示一个可以显示该页面的活动。该活动由浏览器应用程序定义,但作为电子邮件任务的一部分启动。如果它被reparented到浏览器任务,它会在浏览器下一次来到最前面时显示,并且在电子邮件任务再次出现时将不存在。