我有一个应用程序,在开始时检查用户是否已记录并以两种方式行动:
1)如果用户已登录,则跳转直接从第二个活动开始的注册/登录活动
2)让用户从相对活动开始进行注册/登录过程
但我有一个问题:如果用户已登录(并且应用程序直接从第二个活动启动)并按下后退软键,则应用程序会显示注册/登录活动。
我该如何避免呢?
我在考虑通过在第二个活动中调用onBackPressed()
来修改软键行为,但我认为它不是那么正确......
答案 0 :(得分:0)
您可以做的是按startActivityForResult()
开始第二项活动并覆盖onActivityResult
。当你从第二个活动返回时,如果它是注销,则使用一个单独的requestCode,而另一个,即按下后退按钮,将其覆盖为finish()
。
答案 1 :(得分:0)
我们假设您拥有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();