在給定的Android活動中,我想在某個時候爲用戶啓動一項新的活動。一旦他們離開第一個活動併到達第二個活動,第一個活動就會過時,我想完全移除它,因此無法從後退按鈕再次訪問它。如何在離開時殺死Android活動,以便無法從後退按鈕訪問它?
完成此操作的最佳方法是怎樣的?如何在用戶啓動新活動後立即殺死或銷燬此活動?
在給定的Android活動中,我想在某個時候爲用戶啓動一項新的活動。一旦他們離開第一個活動併到達第二個活動,第一個活動就會過時,我想完全移除它,因此無法從後退按鈕再次訪問它。如何在離開時殺死Android活動,以便無法從後退按鈕訪問它?
完成此操作的最佳方法是怎樣的?如何在用戶啓動新活動後立即殺死或銷燬此活動?
你只需要調用finish()
Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();
在你的清單中的活動設置android:noHistory="true"
會從棧中刪除活動,只要它是從導航了。請參閱here
是的,您只需在任何要關閉的活動中調用finish()。
寫在每一個 「新活動」 你初始化後,你的新intent->
Intent i = new Intent(this, yourClass.class);
startActivity(i);
finish();
你可以使用:
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
您還可以在AndroidManifest.xml
添加android:noHistory="true"
您Activity
標籤。
<activity
...
android:noHistory="true">
</activity>
將此屬性添加到您在manifest文件中的活動。 android:noHistory =「true」
謝謝。更進一步,我從對話窗口開始新的活動 - 代碼的工作方式是否一樣? – JohnRock 2010-03-31 03:02:35
@CaseyB感謝這..但我想知道,如果是的話,我可以從服務調用此方法,那麼如何? – swiftBoy 2012-06-06 06:13:28
服務沒有一個活動,這意味着他們不會在活動堆棧中返回。如果你想從你的服務中殺死一些活動,你應該可以調用myActivity.finish(); – CaseyB 2012-06-06 13:53:37