2011-10-06 52 views
1

有人請解釋一下,NoteList活動何時會產生意圖動作ACTION_VIEW,ACTION_EDIT,ACTION_GET_CONTENT。Android記事本應用程序的NoteList活動意圖解析

我想註釋掉從NoteList活動下的具體意圖的代碼,應用效果很好

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <action android:name="android.intent.action.EDIT" /> 
    <action android:name="android.intent.action.PICK" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /> 
</intent-filter> 

而且NoteList活動中,我沒有發現任何處理爲以下意圖的行爲。那爲什麼要定義它們?

說一些startActivityFoorResult()調用這個意圖,當它在NoteList活動中沒有任何處理程序時,這個意圖甚至可以在NoteList中解決。 誰還可以在示例中調用intent操作?

android NotePad示例的相關鏈接如下。

http://developer.android.com/guide/topics/intents/intents-filters.html

http://developer.android.com/resources/samples/NotePad/index.html

在此先感謝

回答

1

如果您發現該意圖過濾器內的最後一行,你會看到它指定一個MIME類型。這將該應用程序與該mime類型關聯。這意味着當你用這個MIME類型打開一個文件/ URL時,它會嘗試用這個應用程序打開它。事實上,你刪除了意圖過濾器並不一定意味着應用程序將停止工作,它將不再處理這種MIME類型。

裏面NotesList.java,你會看到幾個引用Intent.ACTION_EDITIntent.ACTION_PICK等,這些都是"android.intent.action.EDIT"等常量

更新:

如果你看一下manifest file,你會看到分鐘SDK版本設置爲11.這顯然是一個HoneyComb清單文件。我瞥了一下代碼,似乎並不像直接在網站上鍊接的代碼使用片段,但我強烈懷疑該清單是針對使用片段的版本。我知道肯定有一個版本帶有碎片,因爲我在某個時候玩過它。 Google將其用於最近的Android開發者實驗室。這將與您看到的意圖過濾器相匹配,因爲它允許編輯/查看/從列表中選擇一個可以打開片段以查看/編輯/等等的註釋。總之,我認爲代碼和清單可能有點不同步。

+0

是不是從NoteList活動引用ACTION_EDIT對應於調用NoteEdit活動? ACTION_EDIT應該產生NoteEdit活動吧?從最後一行中的示例.. //發出一個Intent來啓動一個可以處理ACTION_EDIT的Activity。 // Intent的數據是備註ID URI。效果是調用NoteEdit。 startActivity(new Intent(Intent.ACTION_EDIT,uri)); – devgp

+0

啊,我明白你的意思了。我匆匆看了一下你的帖子。是的,你在NotesList中使用這些操作是正確的。我會更新一些解釋。 – kabuko

相關問題