Android Notepad应用程序的NoteList活动意图解析

时间:2011-10-06 06:15:43

标签: android android-manifest

有人可以解释,NoteList活动何时会以意图行动ACTION_VIEW,ACTION_EDIT,ACTION_GET_CONTENT产生。

我尝试在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()调用此intent,当NoteList活动中没有任何处理程序时,如何在NoteList内解析此意图。 还有谁可以在示例中调用意图操作?

Android NotePad示例链接如下。

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

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

提前致谢

1 个答案:

答案 0 :(得分:1)

如果您注意到intent过滤器中的最后一行,您将看到它指定了一个mime类型。这会将应用程序与该mime类型相关联。这意味着当您打开具有该mime类型的文件/ URL时,它将尝试使用此应用程序打开它。您删除了意图过滤器的事实并不一定意味着该应用程序将停止工作,它将不再处理此mime类型。

NotesList.java内,您会看到对Intent.ACTION_EDITIntent.ACTION_PICK等的多个引用,它们是"android.intent.action.EDIT"等的常量。

<强>更新

如果查看manifest file,您会看到min SDK版本设置为11.这显然是一个HoneyComb清单文件。我瞥了一眼代码,看起来直接在网站上链接的代码似乎没有使用片段,但我强烈怀疑该清单是针对使用片段的版本。我肯定知道那里有一个带有片段的版本,因为我在某些时候玩过它。谷歌将它用于最近的Android开发者实验室。这将与您看到的intent过滤器匹配,因为它允许编辑/查看/从列表中选择一个注释,这将打开片段以查看/编辑/等。简而言之,我认为代码和清单可能有点不同步。