對於我的應用程序,我希望能夠從電子郵件附件或文件瀏覽器中打開文件,並在後臺處理它們 - 也許使用Toast提供成功/失敗的反饋。我有以下意圖過濾器設置:文件/內容意圖過濾器不適用於BroadcastReceiver活動
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:mimeType="application/octet-stream"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.EDIT"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:mimeType="*/*"
android:host="*"
android:pathPattern=".*\\.mpb"
android:scheme="file"/>
</intent-filter>
但是,如果我把一個BroadcastReceiver下這些過濾器的Android看似拒絕承認這些過濾器的存在。如果我在一個活動下放置完全相同的過濾器,它會正常工作。這是Android意圖過濾器的限制嗎?
現在我只是使用活動傳遞的意圖一起在我處理文件的IntentService - 一樣一樣的就是我的BroadcastReceiver會已經做了 - 然後調用finish()
和return;
。這樣做可以完成工作,但是由於活動即時顯示並消失,因此是不好的用戶體驗。我寧願讓BroadcastReceiver工作,所以有我失蹤的東西?
謝謝 - 這是我對事實上錯過的有意義的細節的一個很好的解釋。非常感激。 – sigmabeta
@sigmabeta:很高興它幫助你: - > –