我有一個使用選項卡組活動的應用程序。所有工作都很好,這些標籤可以自己打開每個活動,但是當用戶註銷時,我的麻煩即將到來。我有一個確認用戶想要註銷的對話框,當他們單擊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