Android意图有时“处理”,而不是ACTION_SEND

我的应用程序应该处理共享的文本。 例如来自亚马逊应用程序的URL。 所以我添加了以下intent-filter到我的主要活动中:

<intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter> 

在我的activity的onCreate函数中,我正在处理这样的意图:

  intent = getIntent(); if(intent.getAction() != null) { if (intent.getAction().equals(Intent.ACTION_SEND)) { if (intent.getType().equals("text/plain")) { onNavigationDrawerItemSelected(1); } } } 

问题是,有时onCreate函数不会在共享操作之后被调用。 我检查了onResume方法,实际上这就是所谓的。 问题是intents行为不是“ACTION_SEND”,而是packagename.handled,并且不包含所需的信息。

这是为什么?

Related of "Android意图有时“处理”,而不是ACTION_SEND"

如果您的活动已经存在,取决于Intent标志和<activity>属性,现有的活动实例可能会被重用。 重写onNewIntent()以将Intent传递给现有的活动实例,使其被带回到前台。 在那里寻找你的ACTION_SEND值。