0

我有一个应用程序,它在开始时检查用户是否已登录并以两种方式操作:

1)如果用户已登录,则直接从第二个活动开始跳转注册/登录活动

2)让用户从相关活动开始做注册/登录过程

但是我有一个问题:如果用户登录(并且应用程序直接从第二个活动启动)并按下后退软键,应用程序会显示注册/登录活动。

我怎样才能避免它?

我正在考虑通过调用onBackPressed()第二个活动来修改软键行为,但我认为它不太正确......

4

2 回答 2

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();
于 2014-03-27T14:13:55.660 回答
0

您可以做的是通过startActivityForResult()覆盖启动第二个活动onActivityResult。当您从第二个活动返回时,如果它是注销,请使用单独的 requestCode,而对于另一个,即按下后退按钮,将其覆盖为finish().

于 2014-03-27T14:06:54.313 回答