谁能向我解释 Android 平台上的“活动”和“意图”之间的区别?
8 回答
用非常简单的语言,Activity
是您的用户界面以及您可以使用用户界面做什么。当您从一个用户界面移动时,您需要使用Intent
. 这Intent
是您的事件,它与数据一起从第一个用户界面传递到另一个用户界面。
意图也可以在用户界面和后台服务之间使用。Intent
当您想要将数据广播到所有活动和后台服务时,也会传递一个。
Intent
作为一个对象生活,活动与面孔和互动一起生活。希望它有所帮助。
如果您对 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");
}
这些是不同的类,不能以任何方式互换。子类的预期用途Activity
是控制应用程序窗口的内容和行为。Intent
另一方面,s 是简单的数据交换结构,通常用于启动新Activity
的 'es 并将数据传递给它们,但它们也有其他用途。
Activity 类负责为您创建一个(全屏或浮动)窗口,您可以在其中放置 UI 元素,以便活动与用户交互。
当您想从一个视图(即一个 Activity)切换到另一个视图时,通常会使用 Intent。
当您当前在 ActivityOne.class 中并致电时:
Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);
然后 ActivityTwo 将显示给用户。
活动:它就像网页,例如。回家,联系。它包含应用程序的所有 UI 部分。
Intent:您可以将 Intent 视为打开另一个活动的一种方式。它基本上有助于打开新活动以及来自先前活动的数据。
活动:活动是您在屏幕上看到的组件,具有一些关联的逻辑来管理生命周期和导航。一个应用程序将包含几个活动。当您从一个屏幕移动到另一个屏幕时,通常您正在更改活动,用新的内容和控制器替换屏幕上的内容。 检查活动生命周期
内容:活动之间的导航由 Intents 管理。Intent 是应用程序通过 Android 操作系统向手机上的相关方广播的一种消息。