任何人都可以向我解释Android平台上“活动”和“意图”之间的区别吗?
答案 0 :(得分:49)
使用非常简单的语言,Activity
是您的用户界面以及您可以使用用户界面执行的任何操作。从一个用户界面移动时,需要使用Intent
启动该新用户界面。 Intent
是您从第一个用户界面传递给另一个用户界面的事件的事件。
也可以在用户界面和后台服务之间使用Intent。当您想要将数据广播到所有活动和后台服务时,也会传递Intent
。
Intent
以对象为生,活动与面孔和互动共存。希望它有所帮助。
答案 1 :(得分:20)
现有答案很好,但这里有两个链接的真正基本定义。
<强> Activity 强>
用于显示用户界面的应用程序component。活动类是处理所有用户交互的位置(按下按钮,列表选择)。活动指定在屏幕上表示它的布局。
<强> Intent 强>
意图是系统消息。系统周围可以broadcast通知其他应用程序(或您自己的!)事件,或者可以用它来请求系统显示新活动。
答案 2 :(得分:17)
如果您对Intent有所了解,那么当您使用它们开始新活动时,我就能理解您的困惑。
在最简单的情况下,您可以开始这样的新活动:
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");
}
答案 3 :(得分:4)
这些是不同的类,不能以任何方式互换。 Activity
子类的预期用法是控制应用程序窗口的内容和行为。另一方面,Intent
是简单的数据交换结构,通常用于启动新的Activity
并将数据传递给它们,但它们也有其他用途。
答案 4 :(得分:3)
Activity类负责为您创建一个(全屏或浮动)窗口,您可以在其中放置UI元素,以便活动与用户交互。
当您想要从一个视图(即一个活动)切换到另一个视图时,通常会使用意图。
如果您当前在ActivityOne.class中并且致电:
Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);
然后将向用户显示ActivityTwo。
答案 5 :(得分:0)
活动:就像网页一样。回家,联系。它包含应用程序的所有UI部分。
意图:您可以将Intent视为打开另一个活动的一种方式。它基本上有助于打开新活动以及之前活动的数据。
答案 6 :(得分:0)
尽管这里有很多很好的解释,但是我想对Activity
和Intent
提出自己的看法。 Activity
是您在屏幕上看到的UI组件。 Intent
是一个消息对象,用于请求来自同一/不同应用程序组件的操作。
答案 7 :(得分:0)
活动: 活动是您在屏幕上看到的组件,具有一些相关的逻辑来管理生命周期和导航。一个应用程序将包含几个活动。从一个屏幕移动到另一个屏幕时,通常是在更改“活动”,用新的内容和控制器替换屏幕上的内容。 CHECK ACTIVITY LIFE CYCLE
内容: 活动之间的导航由意图管理。意图是一种消息,应用程序通过Android OS将其广播到手机上的相关方。