当按下电话上的后退按钮时,我希望阻止特定活动返回到之前的活动。
具体地说,我有登录和注册屏幕,当成功登录/注册时,这两个屏幕都会启动一个名为HomeScreen
的新活动。一旦启动了HomeScreen,我希望阻止用户通过按BACK键返回登录或注册屏幕。
我尝试使用Intent.FLAG_ACTIVITY_NO_HISTORY
,但由于应用程序集成了Facebook,当使用‘登录Facebook’时,Facebook应该返回到初始登录屏幕,因此我应该保留这些活动的历史记录。
我想重写HomeScreen
上后退按钮的行为,以便在按钮被按下时直接完成应用程序
@Override
public void onBackPressed() {
finish();
}
但这也行不通。
发布于 2011-12-29 02:53:08
我的建议是完成你不希望用户返回的活动。例如,在您的登录活动中,在调用startActivity
之后立即调用finish()
。当用户点击后退按钮时,他们将无法转到登录活动,因为它已从堆栈中删除。
发布于 2011-12-26 03:22:57
我不确定你到底想要什么,但这听起来应该是可能的,而且听起来你已经在正确的轨道上了。
以下是一些可能有帮助的链接:
Disable back button in android
MyActivity.java =>
@Override
public void onBackPressed() {
return;
}
How can I disable 'go back' to some activity?
AndroidManifest.xml =>
<activity android:name=".SplashActivity" android:noHistory="true"/>
发布于 2011-12-26 03:23:42
finish()
提供了关闭当前活动而不是整个应用程序的方法。你最好不要试图寻找杀死应用程序的方法。小小的建议。
你有没有试过Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS | Intent.FLAG_ACTIVITY_NO_HISTORY
的合取?记住在Intent
启动活动中使用此标志!
https://stackoverflow.com/questions/8631095
复制相似问题