我有一个应用程序,它在开始时检查用户是否已登录并以两种方式操作:
1)如果用户已登录,则直接从第二个活动开始跳转注册/登录活动
2)让用户从相关活动开始做注册/登录过程
但是我有一个问题:如果用户登录(并且应用程序直接从第二个活动启动)并按下后退软键,应用程序会显示注册/登录活动。
我怎样才能避免它?
我正在考虑通过调用onBackPressed()
第二个活动来修改软键行为,但我认为它不太正确......
我有一个应用程序,它在开始时检查用户是否已登录并以两种方式操作:
1)如果用户已登录,则直接从第二个活动开始跳转注册/登录活动
2)让用户从相关活动开始做注册/登录过程
但是我有一个问题:如果用户登录(并且应用程序直接从第二个活动启动)并按下后退软键,应用程序会显示注册/登录活动。
我怎样才能避免它?
我正在考虑通过调用onBackPressed()
第二个活动来修改软键行为,但我认为它不太正确......
让我们假设你有你的StartActivity
,有打开LoginActivity
或的逻辑MainActivity
。向您的 AndroidManifest.xml 添加以下 XML:
<activity
android:name="com.example.StartActivity"
android:label="@string/app_name"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
并在你的StartActivity
,调用后startActivity(newActivityIntent)
调用finish()
。例子:
Intent intent;
if (isLoginRequired) {
intent = new Intent(this, LoginActivity.class);
} else {
intent = new Intent(this, MainActivity.class);
}
startActivity(intent);
finish();
您可以做的是通过startActivityForResult()
覆盖启动第二个活动onActivityResult
。当您从第二个活动返回时,如果它是注销,请使用单独的 requestCode,而对于另一个,即按下后退按钮,将其覆盖为finish()
.