我在我的應用程序中有一個登錄系統,並且我想這樣做是爲了在用戶登錄到他們的賬戶後退棧得到清除,因此他們看不到日誌在活動中,除非他們點擊主要活動中的註銷按鈕。我怎麼做到這一點?如何在意圖加載時清除後端堆棧
任何幫助將不勝感激。
我在我的應用程序中有一個登錄系統,並且我想這樣做是爲了在用戶登錄到他們的賬戶後退棧得到清除,因此他們看不到日誌在活動中,除非他們點擊主要活動中的註銷按鈕。我怎麼做到這一點?如何在意圖加載時清除後端堆棧
任何幫助將不勝感激。
使用finish()
方法在意圖之後破壞您的登錄活動。它也會從堆棧中刪除。
Intent i = new Intent(this, YourAccountActivity.class);
startActivity(i);
// destroying your current activity
finish();
如果你不想把這個活動在棧中,您還可以使用
android:noHistory="true"
在AndroidManifest.xml
當您更改活動,這個活動將不會在疊加。
值爲「true」表示該活動不會留下歷史跡線 。它不會保留在任務的活動堆棧中,因此 用戶將無法返回到該堆棧。
另一種選擇是使用IntentFlags。
Intent i = new Intent(this, YourAccountActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
如果您想要在同一時間手動完成兩個活動,那麼您可以使用ApplicationContext類並在該定義中。
MyApplicationClass.java
public Activity homeActivity = null;
public Activity otherActivity = null;
,當你開始Homeactivity你可以做的onCreate()方法:
HomeActivity.java
private MyApplicationClass myApplication = null;
myApplication = (MyApplicationClass)getApplicationContext();
myApplication.homeActivity = HomeActivity.this;
同在otheractivity的onCreate()方法:
其他項目.java
private MyApplicationClass myApplication = null;
myApplication = (MyApplicationClass)getApplicationContext();
myApplication.otherActivity = otheractivity.this;
而當你想在同一時間完成Homeactivity和otheractivity然後 就可以完成這樣的方式..
myApplication.homeActivity.finish();
myApplication.otherActivity.finish();
非常感謝您的幫助。對此,我真的非常感激。 –
首先感謝您的快速回復。我非常感謝幫助。我確實有一個問題:如果我在主要活動之前有兩項活動,並且我想同時清除兩項活動,該怎麼辦? –
我已經編輯了我對你評論的回覆 –
非常感謝!這超越... ...非常感謝。我現在覺得自己對背板有很好的理解。 –