我有四個活動a,b,c,d。活動a是主要活動,然後調用b,c和d,然後進行一些計算。我知道我可以通過android:noHistory="true"
屬性阻止這些活動在我的應用程序中建立活動。但問題是,如果我在活動c中,當我按下後退按鈕時,我想要轉到b,但如果d完成,我希望b和c被刪除,並且只顯示一個。有什麼辦法可以做到這一點?在android中清理活動
回答
將此代碼放入您的每項活動中,每次都稍微更改一次。你重寫了後退按鈕的正常功能
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
//start the desired activity
}
return super.onKeyDown(keyCode, event);
}
另外,如果你只支持安卓這樣2.0+那麼你可以使用這個
@Override
public void onBackPressed() {
// start your desired activity here
return;
}
只要把其中任一在每個活動的,然後啓動正確的活動
要關閉一個特定的活動,看看這個頁面 - How to clear specific activity from the stack history?
問題不在於我想重寫後退按鈕,而是關閉已經堆疊到我的堆棧上的n個活動。 – user1667307
在開始新活動後,你可以用'finish()'做到這一點嗎? – jcw
不是。這將簡單地關閉所有活動 - 如果我在活動c中,並且使用完成(),則只有在活動d完成時,纔會關閉活動b,c。我猜這個時候我最好的選擇是在我的活動中使用startActivityForResult() – user1667307
是的,它可以通過確保T爲來達到的在每個startActivity函數之後使用finish()函數。除了最後要顯示的活動外。
所以......這裏是如何看起來像
代碼放在一個:
startActivity(Intent to start activity B);
守則B:
startActivity(Intent to start activity C);
Finish();
代碼在C:
startActivity(Intent to start activity D);
Finish();
這將確保每當活動D完成後,活動C也將由於完成而完成。由於此C也已完成,因此活動B中的完成()將關閉B.由於活動A中沒有完成(),該活動將顯示在屏幕上。
如果你要來活動A d完畢以後,你將不得不使用startActivityForResult和處理結果,並使用IF B中&有條件地執行完成語句C.
- 1. 清除Android活動
- 2. 在Android中清除活動堆棧
- 3. 未在Android清單中聲明活動
- 4. 在另一個活動中開始的活動的Android清單
- 5. 清除活動堆棧android
- 6. Android內存清除活動
- 7. 清除活動回棧android
- 8. 如何清理活動中的變量?
- 9. 爲什麼在完成活動後android不清理內存?
- 10. 清除android中的所有活動
- 11. 清單中的Android抽象活動
- 12. 清除活動堆棧並在android
- 13. 活動閃屏沒有在Android清單
- 14. 管理活動 - Android
- 15. Android活動管理
- 16. 的Android清單活動形成的Android
- 17. Android - 設置父活動android清單
- 18. Android,從活動堆棧中清除X個活動量
- 19. Android:清除堆棧中的第二個活動(或清除特定活動)
- 20. 在android中的活動處理
- 21. 在Android中旋轉的處理活動
- 22. 如何在Android活動中處理SQLiteException?
- 23. 活動啓動時的Android清除值
- 24. Android清除活動堆棧並在啓動器中保留活動
- 25. 在android中清理內存
- 26. 在android中清理SurfaceView
- 27. 清除Android活動堆棧並啓動活動
- 28. 阻止Android活動退出,直到清理完成
- 29. 在android中更改活動會清除以前活動所需的內存?
- 30. Perl:退出前清理活動線程
你是否已經編碼的每個活動中的後退按鈕? – jcw
沒有。我沒有重寫後退按鈕,因爲我認爲最好將後退按鈕的功能留給android系統 – user1667307