我必须按两次退出我的应用

时间:2015-11-17 13:15:56

标签: android android-activity back

我已经尝试过我能在网上找到的所有内容,以阻止这种情况发生之前有人建议'只是去google吧'....

我会明确的,如果不够清楚,我不想在注册或登录屏幕上点击两次。就像我有一个用户从未看到的活动A,A开始意图B或C.

在B或C上我不想点击两次退出应用程序。

我有一个活动,我希望对用户不可见,其目的是检查应用程序是否已注册,如果它已启动登录活动的意图,如果应用程序未注册,则启动意图注册活动。在登录或注册屏幕上我必须按两次退出应用程序的问题。

如果我没有在此活动中调用finish(),则后退按钮会将我带到透明活动,我必须再次按回来,调用finish()表示我不会回到透明活动但我必须按两次 - 这是我不想要的。

我已经尝试调用startActivityForResult()示例,但这没有任何效果。

活动正在使用透明主题,因为使用NoDisplay主题导致异常,谷歌搜索这似乎意味着模拟器的问题,建议修复是使用透明。

<activity
        android:name=".activity.AppEntryPoint"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

活动目前没有做太多,目前我正在尝试下面的代码,但这也没有效果,我仍然需要按两次后退按钮。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if(!"".equals(((GlobalData) this.getApplication()).password)) {
        navigateToLoginScreen();
    } else {
        registerApplication();
    }
}


private void registerApplication() {
    Intent registerScreen = new Intent(this, RegistrationActivity.class);
    registerScreen.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(registerScreen);
    finish();
}

private void navigateToLoginScreen() {
    Intent loginScreen = new Intent(this, LoginActivity.class);
    loginScreen.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(loginScreen);
    finish();
}

我该怎样做才能确保用户只有在到达第二个屏幕时才需要按一次,无论是登录还是注册屏幕?

1 个答案:

答案 0 :(得分:4)

我认为solution会解决您的问题。

只需将清单文件中的android:noHistory="true"添加到您的第一个活动中,如下所示:

<activity
  android:name=".activity.AppEntryPoint"
  android:label="@string/app_name"
  android:noHistory="true"
  android:theme="@android:style/Theme.Translucent.NoTitleBar" >
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>