为什么我们需要一个意图来创建一个活动?

sri*_*ram 2 android android-intent android-activity

我对android很陌生,我无法找到Intentandroid中的用途。

我可以理解代码:

   Intent i = new Intent(getApplicationContext(),Myclass.this);
   startActivity(i);
Run Code Online (Sandbox Code Playgroud)

它能做什么。但我的问题是为什么我们需要Intent创建一个Activity. 为什么 android 人不能让我们允许Activity直接创建而不是使用Intent.

Tri*_*mon 5

这是一个 Android 设计问题。背后的想法是,你总是只填充一个意图(离子)“我想查看这个 URL”“我想启动我的主屏幕启动器”。系统会检查哪些应用程序能够满足此请求,并且 - 如果有多种可能性 - 允许您选择其中之一。

从某种角度来看,这更灵活一些。例如,在我上面的第一个示例中,您不需要知道 android 标准浏览器是否存在或是否安装了 Chrome。您只需要求系统查看 URL:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

所以有一些好处,但另一方面它可能看起来有点复杂。