簡體   English   中英

開始新活動時完成2個活動

[英]Finish 2 activities when starting new activity

我有4個活動:ABCD從C開始活動D時,應從堆棧中刪除B和C。 因此,順序如下:A> B> C> D然后D> A從C啟動D時,我嘗試做的是:

//create new Intent(C,D)
//setflags Intent.FLAG_ACTIVITY_CLEAR_TOP
//startActivity
//finish C

在D中調用onBackPressed時,將顯示活動B。 好像沒有完成。 在Layout Inspector中檢查活動堆棧時,我可以看到ABD。在調用D或D的onBackPressed時如何從堆棧中刪除B? 請注意,啟動C時我需要B,這就是為什么我在啟動C時沒有嘗試調用finish()的原因。

如何從D活動加載活動。

Intent intent = new Intent(getBaseContext(), A.class);
startActivity(intent); 

實現此目的的一種方法是,當您按回活動D時,只需使用標志FLAG_ACTIVITY_CLEAR_TOP來開始活動A。 這會將已經存在的活動A放在最前面,並清除所有其他活動。

@Override
void onBackPressed() {
     Intent intent = new Intent(this, A.class);
     intent.setFlags(FLAG_ACTIVITY_CLEAR_TOP);
     startActivity(intent);
}

注意:這還將從堆棧中清除活動D,因此您將無法按回去活動D。

只需使用:

startActivity(new Intent(this, A.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM