2016-11-15 47 views
9

我的应用程序应该处理共享文本。例如来自亚马逊应用程序的URL。所以我增加了以下意图过滤器,以我的主要活动:Android意图有时“处理”而不是ACTION_SEND

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

在我的我的活动的onCreate功能,我处理的意图,像这样:

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

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

这是为什么?

+0

您是否尝试在活动的清单中更改'android:documentLaunchMode'和'android:launchMode'? –

回答

7

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

+0

在我的情况下,onNewIntent()也不会被调用。 – Joshude