42

谁能向我解释 Android 平台上的“活动”和“意图”之间的区别?

4

8 回答 8

62

用非常简单的语言,Activity是您的用户界面以及您可以使用用户界面做什么。当您从一个用户界面移动时,您需要使用Intent. 这Intent是您的事件,它与数据一起从第一个用户界面传递到另一个用户界面。

意图也可以在用户界面和后台服务之间使用。Intent当您想要将数据广播到所有活动和后台服务时,也会传递一个。

Intent作为一个对象生活,活动与面孔和互动一起生活。希望它有所帮助。

于 2013-04-28T07:31:35.047 回答
24

现有的答案很好,但这是两者的一个非常基本的定义,并带有一些链接。

活动

用于显示用户界面的应用程序组件。活动类是处理所有用户交互(按钮按下、列表选择)的地方。一个活动指定一个布局以在屏幕上表示它。

意图

意图是系统消息。它可以在系统周围广播以通知其他应用程序(或您自己的!)一个事件,或者它可以用来请求系统显示一个新的活动。

于 2013-04-28T07:26:35.560 回答
18

如果您对 Intents 的了解仅在于您使用它们来开始一项新活动,那么我可以理解您的困惑。

在最简单的情况下,您可以像这样开始一个新活动:

Intent intent = new Intent(this, SomeOtherActivity.class);
startActivity(intent);

看起来您确实正在开始一项活动,而您正在开始的活动是“意图”。但是你真正在做的是调用该方法startActivity(),并且你正在向它传递一个名为 intent 的容器。该容器告诉startActivity()该做什么。

当您将数据传递给新活动时,您可以更清楚地看到它

Intent intent = new Intent(this, SomeOtherActivity.class);
startActivity(intent);
intent.putExtra("ANIMAL_TYPE", "unicorn");
intent.putExtra("ANIMAL_COLOR", "ruby");
startActivity(intent);

现在,当您调用时startActivity(),它会查看意图并知道它需要启动SomeOtherActivity课程。此外,在SomeOtherActivity类中,您可以像这样从意图访问那些传递的键/值对:

Bundle extras = getIntent().getExtras(); 
if(extras !=null) {
    String animal = extras.getString("ANIMAL_TYPE");
    String animalColor = extras.getString("ANIMAL_COLOR");
}
于 2013-04-28T06:41:55.960 回答
4

这些是不同的类,不能以任何方式互换。子类的预期用途Activity是控制应用程序窗口的内容和行为。Intent另一方面,s 是简单的数据交换结构,通常用于启动新Activity的 'es 并将数据传递给它们,但它们也有其他用途。

于 2013-04-28T05:53:46.210 回答
4

Activity 类负责为您创建一个(全屏或浮动)窗口,您可以在其中放置 UI 元素,以便活动与用户交互。

当您想从一个视图(即一个 Activity)切换到另一个视图时,通常会使用 Intent。

当您当前在 ActivityOne.class 中并致电时:

Intent i = new Intent(this, ActivityTwo.class);
startActivity(i); 

然后 ActivityTwo 将显示给用户。

于 2013-04-28T05:55:52.077 回答
1

虽然这里有很多很好的解释,但我想就 和 给出我自己的Activity看法IntentActivity是您在屏幕上看到的 UI 组件。AnIntent是一个消息对象,用于从相同/不同的应用程序组件请求操作。

在此处输入图像描述

参考意图活动

于 2019-05-26T11:47:54.343 回答
0

活动:它就像网页,例如。回家,联系。它包含应用程序的所有 UI 部分。

Intent:您可以将 Intent 视为打开另一个活动的一种方式。它基本上有助于打开新活动以及来自先前活动的数据。

于 2018-06-01T09:57:18.933 回答
0

活动:活动是您在屏幕上看到的组件,具有一些关联的逻辑来管理生命周期和导航。一个应用程序将包含几个活动。当您从一个屏幕移动到另一个屏幕时,通常您正在更改活动,用新的内容和控制器替换屏幕上的内容。 检查活动生命周期

内容:活动之间的导航由 Intents 管理。Intent 是应用程序通过 Android 操作系统向手机上的相关方广播的一种消息。

于 2019-09-01T23:50:24.303 回答