避免返回之前的活动

时间:2014-03-27 14:02:04

标签: android eclipse android-activity fragment softkeys

我有一个应用程序,在开始时检查用户是否已记录并以两种方式行动:

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

2)让用户从相对活动开始进行注册/登录过程

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

我该如何避免呢?

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

2 个答案:

答案 0 :(得分:0)

您可以做的是按startActivityForResult()开始第二项活动并覆盖onActivityResult。当你从第二个活动返回时,如果它是注销,则使用一个单独的requestCode,而另一个,即按下后退按钮,将其覆盖为finish()

答案 1 :(得分:0)

我们假设您拥有StartActivity,其逻辑是LoginActivityMainActivity。 给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();