gpt4 book ai didi

android - 哪种开始新 Activity 的方式最好?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:49:45 26 4
gpt4 key购买 nike

在我学习 Android 开发的过程中,我遇到了两种不同的开始新 Activity 的方式。现在我开始怀疑。

它们都工作正常。但是,我想知道其中一个选项是否更好用,为什么?

我的第一个示例(也是迄今为止我最喜欢的一个):

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

第二个:

startActivity(new Intent("com.example.MENUSCREEN"));

我需要在 list 中将 android:name 添加到我的 intent-filter 的地方:

<activity
android:name="com.example.MainMenuActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="com.example.MENUSCREEN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

我是否理解正确, Intent 就像是在说,我打算做某事?执行某项操作的“Intent ”。

最佳答案

只是回答你的问题:

Which way of starting a new activity is the best?

取决于您想做什么以及您想要开始的 Activity 实际存在于何处,长话短说,Intent 可以分为显式/隐式两种类型。

您正在尝试的第一个:

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

是“明确的”,这意味着您可以访问将实际处理它自己的 Intent 的类,通常只有当该类在您的项目中的某个地方时才有可能,但情况并非总是如此,有时您可能需要从不同的应用程序打开一个 Activity,然后您将使用第二个选项。

你尝试的第二个:

startActivity(new Intent("com.example.MENUSCREEN"));

是“Implicit”,这是一个任何符合“action/category/data”intent filter的activity都可以处理的 Action ,如果有多个Activity可以处理,操作系统会弹出一个窗口要求用户选择其中之一。

如您所见,一种方式并不比另一种好,这完全取决于您想做什么以及操作系统为您提供的在不同情况下开始 Activity 的可能性。

希望对您有所帮助!

问候!

关于android - 哪种开始新 Activity 的方式最好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22185590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com