2016-11-15 55 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