我对 android 很陌生,我无法找到Intent
在 android 中的用途。
我可以理解代码:
Intent i = new Intent(getApplicationContext(),Myclass.this);
startActivity(i);
它能做什么。但我的问题是为什么我们需要Intent
创建一个Activity
. 为什么 android 的人不能让我们允许Activity
直接创建而不是使用Intent
.
我对 android 很陌生,我无法找到Intent
在 android 中的用途。
我可以理解代码:
Intent i = new Intent(getApplicationContext(),Myclass.this);
startActivity(i);
它能做什么。但我的问题是为什么我们需要Intent
创建一个Activity
. 为什么 android 的人不能让我们允许Activity
直接创建而不是使用Intent
.
这是一个Android设计问题。背后的想法是,你总是只填充一个意图(离子)说“我想查看这个 URL”或“我想启动我的主屏幕启动器”。系统会检查哪些应用程序能够满足此请求,并且 - 如果有多种可能性 - 允许您选择其中一个。
从某种角度来看,这更灵活一些。例如,在我上面的第一个示例中,您不需要知道 android 标准浏览器是否存在或是否已安装 Chrome。您只需要求系统查看 URL:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(intent);
所以有一些好处,但另一方面,它可能看起来有点复杂。
应用程序的三个核心组件——活动、服务和广播接收器——通过消息激活,称为意图。
Intent 是异步消息,它允许 Android 组件向 Android 系统的其他组件请求功能。例如,一个 Activity 可以向启动另一个 Activity 的 Android 系统发送一个 Intent。
它最重要的用途是在活动的启动和开始服务中,它可以被认为是活动之间的粘合剂。
Intent 可用于打开其他应用程序,如 facebook、twitter、电子邮件等。从这里您可以发送电子邮件、在 facebook 上分享照片并在 twitter 上发送文本。
阅读意图的 android 开发者文档。
我的问题是为什么我们需要 Intent 来创建 Activity
我会说它是 Android 的原生内置功能/机制来执行某些操作(例如在活动之间切换),您应该遵循它。
通常 Intent 是做某事的“意图”。您可以将其想象为表示您希望某事发生的消息,并且您可以指定应该发生的事情。
强烈质疑 Android 操作系统是如何设计的,因此很难做出真正正确和正确的答案。