为什么我们会得到这些"无效"意图?

Roy*_*erg 9 android android-intent

我们有一个带有Activity的应用程序,可以通过两种方式启动:

  • 来自另一个活动 - 总是填写一些额外的数据
  • 从深层链接

据我所知,这总是很好.我们要么Intent.ACTION_VIEW使用数据URI,要么获得一些字符串附加功能.

但是,我们的行动很少,Intent.ACTION_MAIN而且没有额外的数据.

toString()本意向书如下(类名称更改):

Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10400000 cmp=com.example.OurActivity }
Run Code Online (Sandbox Code Playgroud)

Intent.getExtras()返回null,Intent.getDataString()返回null.

在哪些情况下会发生这种情况?为什么活动的类别Intent.CATEGORY_LAUNCHER?我们如何获得向用户显示正确内容所需的数据?

launchMode没有为活动指定.唯一IntentFilterAndroidManifest.xml用于深度链接(而不是发射器类别).

问题发生在Android 4-6的各种设备上.

编辑:忘了提旗子:

由于打印输出表明Intent的标志是FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_BROUGHT_TO_FRONT.我想这可能与此相关.

Kon*_*nov 1

我相信,我做到了:

有启动器,例如Nova Launcher ,它允许用户从任何应用程序启动Activities,而不是正常流程:

在此输入图像描述

例如,您可以在桌面上添加一个快捷方式,通过帐户设置活动启动 Gmail 客户端。

在这种情况下,Activity 是用空启动的Extras,从技术上讲,它变成了启动器的Activity.