我已经尝试过我能在网上找到的所有内容,以阻止这种情况发生之前有人建议'只是去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();
}
我该怎样做才能确保用户只有在到达第二个屏幕时才需要按一次,无论是登录还是注册屏幕?
答案 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>