什么是基本意图?

时间:2016-04-11 06:27:46

标签: android android-intent

来自:http://developer.android.com/guide/topics/manifest/activity-element.html

android:relinquishTaskIdentity
     

活动是否将其任务标识符放弃到   在任务堆栈中它上面的活动。根活动具有的任务   此属性设置为" true"将基础Intent替换为   任务中的下一个活动。

这里的基本意图是什么?

1 个答案:

答案 0 :(得分:3)

基本意图是最初启动您的应用的根目标。

最常见的可能是任何应用在响应应用图标上的触摸时所具有的那个。 LAUNCHER意图。

但它可以是自定义的,例如,当您响应自定义方案/网址时。但这是诀窍以及relinquishTaskIdentity如何有用:

假设您使用启动器图标启动应用。您的基本意图现在是默认意图。

现在,说你的应用程序被完全杀死(或者你的应用程序关闭之前你已经用硬件图标支持)并且你使用自定义方案/网址打开你的应用程序,此时基本意图不是默认一个。它是您点击的方案/网址生成的网站,也可能包含自定义数据。现在,如果您只是使用主页按钮关闭应用程序并重新打开它,您将只是恢复到原来的位置。但是如果你使用硬件按钮后退,后退,返回...直到你的应用程序关闭有诀窍:从最近的应用程序/多任务视图重新打开它将重用打开它的基本意图,在这种特殊情况下它仍将是你的自定义方案/网址意图,这可能非常烦人。

为什么讨厌?假设用户点击的方案/网址用于自动登录并且他成功了:您不想再次处理此网址/意图只是因为您的用户备份直到其应用关闭并通过最近的应用重新打开多任务处理,对吧?

使用relinquishTaskIdentity!这非常依赖于您的设置以及您的应用程序如何配置活动与碎片,但这是一个示例:

在我提到的通过链接自动登录的特定情况下,您可以拥有专用的Activity并且仅响应scheme / url。同样的活动应该与标记为LAUNCHER的活动不同。并在其上使用属性relinquishTaskIdentity="true"将使基本意图成为任何随后显示的活动。

那么在我们的案例中有什么好处呢?用户无法再使用自定义方案/网址生成的意图进入应用,除非他/她真的点击了应用支持的方案。