簡體   English   中英

我無法完成活動

[英]I can not finish the Activity

我的問題是...我有3個活動:

(活動A),(活動B)和(活動C)

從ActivityA到ActivityB,我使用以下代碼:

val intent = Intent(this, ActivityB::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
startActivity(intent)
finish()

從ActivityB到ActivityC,我也使用以下代碼:

val intent = Intent(this, ActivityC::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
startActivity(intent)
finish()

但是,如果我給出onBackPressed或轉到任何其他App並返回到我的App,而不是返回到ActivityC,它將轉到ActivityA。

您需要從Intent刪除Intent.FLAG_ACTIVITY_NO_HISTORY以啟動Activity C ,因為該標志阻止將新活動添加到后堆棧中,並在離開該活動時完成該活動。 這意味着您的應用將從其啟動器活動開始,我假設它是Activity A 您可以在文檔中閱讀有關此標志的更多信息。

從活動A到活動B都是這樣的-

val intent = Intent(this, ActivityB::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
finish()

從活動B到活動C要做這樣-

val intent = Intent(this, ActivityC::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
finish()

您必須刪除intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)。

它確實清除了當前活動的歷史記錄。

改用這個

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
startActivity(intent)
finish()

暫無
暫無

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

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