Android中如何根据条件选择启动活动
如何动态选择应用程序的启动活动 以这个场景为例:用户第一次打开应用程序时,他将看到AuthenticationActivity,之后,他将看到MainActivity。如果他注销,他将再次看到身份验证活动 我不想使用闪屏或类似的东西,我想知道是否有办法做到这一点Android中如何根据条件选择启动活动,android,Android,如何动态选择应用程序的启动活动 以这个场景为例:用户第一次打开应用程序时,他将看到AuthenticationActivity,之后,他将看到MainActivity。如果他注销,他将再次看到身份验证活动 我不想使用闪屏或类似的东西,我想知道是否有办法做到这一点 我想在调用setContentView之前,先检查main活动的onCreate方法中是否有帐户,如果没有,则显示AuthenticationActivity,但我觉得不太合适。您可以这样做: public class Navigato
我想在调用setContentView之前,先检查main活动的onCreate方法中是否有帐户,如果没有,则显示AuthenticationActivity,但我觉得不太合适。您可以这样做:
public class NavigatorActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent;
if (isAuthenticated) {
intent = new Intent(NavigatorActivity.this, MainActivity.class);
} else {
intent = new Intent(NavigatorActivity.this,
AuthenticationActivity.class);
}
startActivity(intent);
finish();
}
}
并使用此
导航活动启动您的应用程序
您还可以将MainActivity设置为LoginActivity的父级,将LoginActivity设置为Main/Launcher,如果已经登录,则调用finish()
<application ... >
...
<!-- The main/home activity (it has no parent activity) -->
<activity
android:name="com.example.myfirstapp.MainActivity" ...>
...
</activity>
<!-- A child of the main activity -->
<activity
android:name="com.example.myfirstapp.LoginActivity"
android:label="@string/title_activity_login"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
...
...
它不返回上一个活动,而是启动父活动。您的解决方案有效。或者,您可以先启动AuthenticationActivity,如果有帐户,只需重定向到mainactivity即可。如果您在
onCreate
中完成并启动一个新活动,则该活动对用户不可见。您可以创建一个基本活动,并从中继承主活动和验证活动,然后在基本活动中的onCreate方法中,检查帐户并显示正确的活动我是否必须使用活动类扩展NavigatorActivity,还是它也可以是AppCompatActivity?@Ady96没关系,它也可以是AppCompatActivity。我正在这样做,但主活动尚未启动,是否还有其他步骤您忘记提及?