Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同类型的Android意图_Android_Android Intent_Android Activity - Fatal编程技术网

不同类型的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); 我理解第二个代码段的功能,我只是不知道第一个代码段在做什么?它是否引用包中的文件?感谢第一个是隐含的意图,而第二个是明确的意图

我最近启动了一个新的Android项目,我正在使用以前的开发人员代码。我对安卓系统比较陌生,遇到了一些我不确定的事情

这两者之间的区别是什么:

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。例如,对于操作
    action\u EDIT
    ,数据应该包含要修改的文档的URI
  • 类别:其他信息(例如,如果您希望您的应用程序显示在启动器中,您可以使用
    类别_启动器
  • 额外信息:包含附加信息的键-值对
  • 标志:它类似于元数据,指定系统应如何管理意图
Intent
类提供了许多不同的构造函数

你要的第一个是

因此,这将设置
操作
,并允许所有其他字段为空


第二个组件通过其
组件名称
为特定组件创建意图。所有其他字段均为空。这是一个明确的意图,因为您准确地声明了应该接收它的组件。

这解决了我的问题,非常感谢!我在清单中找到了新活动的链接。