按下后退按钮并从后台恢复应用程序后,防止返回登录活动

时间:2016-04-02 18:12:08

标签: android android-activity

我阻止通过此代码返回登录活动:

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
finish(); //Finish Login Activity
startActivity(intent); //start second Activity,

当用户进行第二次活动时,他按下主页按钮,应用程序进入后台,当他恢复时,第二个活动出现 - 没关系。 但是当用户在第二个活动中按下后退按钮时,应用程序转到后台,当他恢复它时 - 再次创建登录活动并且它在foregoround上。

如何防止再次创建登录活动?或者我可能不应该完成登录活动,而应该检查用户是否已登录 - 如果是,我应该显示第二个活动?

清单:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".LoginActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".MainActivity"></activity>
</application>

3 个答案:

答案 0 :(得分:1)

在清单文件中添加:

android:noHistory="true"

登录活动。

答案 1 :(得分:0)

你可以做的是像这样覆盖onBackPressed方法:

@Override
public void onBackPressed()
{

}

并在该方法中放置您想要它做的事情。 希望对你有用。

答案 2 :(得分:0)

试试这个:

 Intent intent = new Intent(this, MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    finish();