簡體   English   中英

在Android中啟動其他活動時如何完成活動?

[英]How to finish Activity when starting other activity in Android?

我之前完成活動時遇到問題。 我想開始另一個活動並完成當前的活動。 當我使用finish它沒有退出當前活動。

我怎樣才能退出活動?

你需要intent當前的context ,以另一個活動先用startActivity 之后,您可以從重定向的位置finish當前的activity

 Intent intent = new Intent(this, FirstActivity.class);// New activity
 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 startActivity(intent);
 finish(); // Call once you redirect to another activity

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) - 清除活動堆棧。 如果您不想清除活動堆棧。 請不要使用那個標志。

Intent i = new Intent(this,NewLaunchingActivity.Class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // Call Only, if you dont want to come back to this activity on back press, else ignore this line
    startActivity(i);
    finish();

最好的——也是最簡單的——解決方案可能是這樣的:

Intent intent = new Intent(this, OtherActivity.class);
startActivity(intent);
finishAndRemoveTask();

finishAndRemoveTask()文檔:

當您的活動完成並且應該關閉並且任務應該作為完成任務的根活動的一部分被完全刪除時調用它。

這就是你要找的嗎?

  1. 在清單文件中launchMode = "singleInstance"您的活動 A: launchMode = "singleInstance"
  2. 當用戶點擊new時,做FirstActivity.fa.finish(); 並調用新的 Intent。
  3. 當用戶點擊修改時,調用新的 Intent 或簡單地完成活動 B。
startActivity(new Intent(context, ListofProducts.class)
    .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK));

例如:您正在使用兩個活動,如果您想從活動 A 切換到活動 B

像這樣簡單地給予。

          Intent intent = new Intent(A.this, B.class);
         startActivity(intent);
         finish();

暫無
暫無

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

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