我有一个使用选项卡组活动的应用程序。所有工作都很好,这些标签可以自己打开每个活动,但是当用户注销时,我的麻烦即将到来。我有一个确认用户想要注销的对话框,当他们单击YES时,它会向会话服务器端的URL发送一个http请求,清除storepreferences中的一些变量,然后启动登录活动。这一切都很好,但是当用户在登录界面时,如果他们回来了,他们就会将他们带回到他们登录前的活动中。我试着添加诸如FLAG_ACTIVITY_CLEAR_TOP,FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS,FLAG_ACTIVITY_NO_HISTORY之类的标志,它们都不起作用,它们仍然可以回击并且执行之前的活动。所以我已经重写了登录屏幕上的onBackPressed方法,而不是将应用程序发送到后台(moveTaskToBack(true))。这似乎工作,当我回到主屏幕,但如果我点击我的应用程序的图标,它不恢复在我预期的登录屏幕,但在用户注销之前的活动。任何关于我可以尝试如何在用户注销时这样做的想法,它会清除以前的所有活动,并向我们显示登录活动而无法返回?预先感谢您的任何帮助!!!TabGroupActivity android应用程序 - 注销后防止返回
1
A
回答
1
如果你的最低目标是蜂窝或更高,这是非常容易的。如果你的最低限度更低,它会稍微复杂一些。使用蜂窝,你可以添加几个标志的意图,它工作正常。在较低的API级别中,我发现的唯一可行的方法是启动Intent.FLAG_ACTIVITY_CLEAR_TOP
的活动,并让该活动启动您的登录活动,然后完成。
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void logout() {
Intent intent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
intent = new Intent(this, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
else {
intent = new Intent(this, HomeActivity.class);
intent.putExtra("logout", true);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
}
在HomeActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean logout = getIntent().getBooleanExtra("logout", false);
if (logout) {
startActivity(new Intent(this, LoginActivity.class));
finish();
return;
}
//...
}
0
尝试覆盖回压法,一件让他走了出来,当点击后退按钮:
@Override
public void onBackPressed() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
,或者你可以注销后重定向到一个视图与选项nohistory视图,这可以通过添加此行的AndroidManifest其中新活动注销时进行定义
android:noHistory="true"
相关问题
- 1. 注销后防止返回页面
- 2. 注销后防止返回按钮
- 3. 从应用程序注销后,在浏览器中防止返回选项
- 4. 注销后防止后退
- 5. 注销后防止页面回顾
- 6. 用PHP登录并注销后防止用户返回
- 7. PHP防止在注销后返回页面
- 8. 如何在注销后防止浏览器返回按钮?
- 9. 停止Android注销应用程序后发送通知?
- 10. 如何防止用户在注销聚合物后返回上一页
- 11. Android - 预防onResume返回到应用程序后,主页按钮
- 12. 防止自动注销cakephp
- 13. 如何防止活动在android应用程序中销毁?
- 14. 如何在JSP中注销后防止用户返回,但保留缓存?
- 15. Facebook的Android应用程序注销
- 16. Android - 注销Facebook应用程序
- 17. 如何从Android应用程序注销。
- 18. 清理缓存,防止在注销后返回登录页面或上一页
- 19. Facebook集成应用程序在Android中的本机应用程序注销后未注销
- 20. Facebook应用程序注销
- 21. 从应用程序注销
- 22. iOS - 注销应用程序
- 23. 从谷歌加注销后从Android应用程序共享
- 24. 如何在后台注销Android应用程序?
- 25. 当应用程序转到后台时Android自动注销
- 26. 防止android应用程序挂起?
- 27. 防止用户注销或关闭
- 28. 安卓:startChildActivity(tabgroupactivity)关闭应用程序
- 29. 防止缓存清单返回后应用程序缓存被丢弃404
- 30. 如何在不使用Android应用程序时注销android应用程序
这似乎工作到目前为止,虽然有时应用程序完全关闭,而不是返回到登录屏幕。标记为现在被接受,直到我找到更好的解决方案。谢谢詹姆斯的帮助! – Phil
我不明白这是如何完全关闭应用程序的。在所有场景中,您都将开始一个新的“LoginActivity”。 –
詹姆斯,你的答案肯定是正确的。包含我的tabhost的主类在onDestory()方法中有额外的代码,它正在杀死该应用程序。删除,它是完美的工作。感谢您的帮助!!! – Phil