在我学习 Android 开发的过程中,我遇到了两种不同的开始新 Activity 的方式。现在我开始怀疑。
他们都工作得很好。但是,我想知道其中一个选项是否更好用,为什么?
我的第一个例子(也是我迄今为止最喜欢的一个):
Intent intent = new Intent(this, MainMenuActivity.class);
this.startActivity(intent);
第二个:
startActivity(new Intent("com.example.MENUSCREEN"));
我需要在 list 中将 android:name 添加到我的 Intent 过滤器的位置:
<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 就像说,我打算做某事?做一个 Action 的“Intent ”。
最佳答案
只是回答你的问题:
长话短说,Intent 可以分为显式/隐式两种类型,这取决于您想要做什么以及您想要开始的 Activity 的实际位置。
您正在尝试的第一个:
Intent intent = new Intent(this, MainMenuActivity.class);
this.startActivity(intent);
是“显式”,这意味着您可以访问将实际自行处理 Intent 的类,通常只有当该类位于您的项目中时才有可能,但情况并非总是如此,有时您可能需要打开一个 Activity来自不同的应用程序,然后您将使用第二个选项。
您尝试的第二个:
startActivity(new Intent("com.example.MENUSCREEN"));
是“隐式”,这是任何符合“ Action /类别/数据” Intent 过滤器的 Activity 都可以处理的 Action ,如果有多个 Activity 可以处理,操作系统会弹出一个窗口询问用户选择其中之一。
正如您所看到的,一种方式并不比另一种方式更好,这完全取决于您想要做什么以及操作系统为您提供的在不同情况下启动 Activity 的可能性。
希望能帮助到你!
问候!
关于android - 哪种开始新 Activity 的方式最好?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22185590/