不同类型的Android意图
我最近启动了一个新的Android项目,我正在使用以前的开发人员代码。我对安卓系统比较陌生,遇到了一些我不确定的事情 这两者之间的区别是什么:不同类型的Android意图,android,android-intent,android-activity,Android,Android Intent,Android Activity,我最近启动了一个新的Android项目,我正在使用以前的开发人员代码。我对安卓系统比较陌生,遇到了一些我不确定的事情 这两者之间的区别是什么: Intent intent = new Intent("com.example.project.MENU"); 这是: Intent intent = new Intent(this, DisplayMenu.class); 我理解第二个代码段的功能,我只是不知道第一个代码段在做什么?它是否引用包中的文件?感谢第一个是隐含的意图,而第二个是明确的意图
Intent intent = new Intent("com.example.project.MENU");
这是:
Intent intent = new Intent(this, DisplayMenu.class);
我理解第二个代码段的功能,我只是不知道第一个代码段在做什么?它是否引用包中的文件?感谢第一个是隐含的意图,而第二个是明确的意图 第一个为操作com.example.project.MENU触发了
意图
。如果您查看项目内部的AndroidManifest.xml
,您可以看到一些
应答器。这将注册活动、服务或广播接收器以执行不同的操作
此mecanism可用于允许第三方应用程序启动您的某些活动
您可以在本教程中看到更多信息。如果您想从应用程序中打开另一个应用程序,则主要使用第一种类型的意图,而第二种类型的意图用于打开应用程序中的另一个活动。当您需要从系统调用意图时,使用第一种类型的意图 例如,打开相机、多媒体资料或将某些内容共享给其他应用程序 比如说
// this one call Camera to Capture Image
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// this one call gallery to let you select image
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
还有那个MediaStore,这里有些东西只是通往系统的路径
比如说
MediaStore.ACTION\u IMAGE\u CAPTURE=“android.media.ACTION.IMAGE\u CAPTURE”
Intent.ACTION\u PICK=“android.Intent.ACTION.PICK”
基本上,包含一些信息,系统使用这些信息来确定应该调用哪个组件来执行操作
这些资料包括:
- 组件名称:应启动的组件的名称。(如果存在,意图是明确的)
- 操作:指定应执行的一般操作(例如
,操作视图
)。它决定了意图的其余部分是如何构造的操作发送
- 数据:表示引用应与操作关联的对象的URI。例如,对于操作
,数据应该包含要修改的文档的URIaction\u EDIT
- 类别:其他信息(例如,如果您希望您的应用程序显示在启动器中,您可以使用
)类别_启动器
- 额外信息:包含附加信息的键-值对
- 标志:它类似于元数据,指定系统应如何管理意图
Intent
类提供了许多不同的构造函数
你要的第一个是
因此,这将设置操作
,并允许所有其他字段为空
第二个组件通过其
组件名称
为特定组件创建意图。所有其他字段均为空。这是一个明确的意图,因为您准确地声明了应该接收它的组件。这解决了我的问题,非常感谢!我在清单中找到了新活动的链接。