帮助第一个Android活动

w.d*_*hue 4 android android-activity

当我的应用程序首次打开时,呈现给用户的第一个活动可能会因配置选项而异.我只知道如何通过在Manifest中添加类似的东西来硬编码应用程序运行时运行的第一个活动

<activity android:label="@string/app_name" android:name=".MyFirstActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

其中MyFirstActivity是要运行的第一个活动类的类名.如何在首次启动应用程序时动态选择首先运行的活动,而不是在清单中对其进行硬编码?

谢谢!

Com*_*are 9

选项1:在onCreate()MyFirstActivity,调用startActivity()了正确的活动,那么finish().

选项#2:使用LAUNCHER <intent-filter>除一个禁用的所有活动定义多个活动.首次运行(或根据需要),启用正确的活动并禁用其他活动.缺点:可能需要重启电话才能更新启动器,因为并非所有主屏幕启动器都会检测到您的更改.

选项#3:重新设计GUI,这不是问题.

  • 这很简单,但是对于选项#1的情况可能会有所帮助,如果您不希望在应用程序启动期间看到您的`MyFirstActivity`:只需将您的`MyFirstActivity扩展为Activity`并将`android:theme ="@ android:style/Theme.NoDisplay"`在其清单中. (2认同)