在我的活動中我使用Intent調用活動B.在Activity B中,我重寫了onBackPressed(),並從中調用Activity A,但不使用finish()。當我們調用活動B時,是否再次使用A,是否使用了同一個活動B的實例或創建了新實例? 又不想完成活動再次調用n是不好主意?如果是,如何防止每次創建活動B的新實例?清單中的android:launchMode =「singleTask」在這種情況下是否有用?當我們再次使用intent再次調用活動n時,已經創建了多少個實例,而無需在android中完成它?
3
A
回答
2
在調用活動之前,您可以在意圖中設置FLAG_ACTIVITY_REORDER_TO_FRONT標誌。如果已啓動的活動已經在運行,則該啓動的活動將被帶到其任務歷史堆棧的前面,以便不會創建該活動的新實例。例如,
Intent settingIntent = new Intent(ActivityA.this, ActivityB.class);
settingIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
ActivityA.this.startActivity(settingIntent);
+0
但是,如果我們再次調用活動B時使用上述代碼,則不會調用oncreate()方法。任何原因? –
+0
是的,因爲通過設置此標誌,您已啓動的活動將從活動堆棧移到最前面。並且只有在活動新啓動時纔會調用onCreate。如果在活動堆棧中不可用,此代碼將首次啓動該活動,因此onCreate只會在第一次調用時啓動,但隨後會通過設置此標誌啓動此活動來檢查它是否已啓動。並使用該現有活動。但是您可以使用該活動的「onPause」和「onResume」方法來處理您的變量。 – KunalK
相關問題
- 1. Camera Intent在Android中完成後再次調用?
- 2. 當onCreate被再次調用時,Android動畫無法啓動
- 3. 當第二次調用該函數時,子div再次創建
- 4. 首次調用活動時在sqlite數據庫中插入數據時間,當再次返回到活動或再次調用活動時停止插入
- 5. 每次android都通過Intent創建新的實例活動?
- 6. 再次調用
- 7. 讓ajax調用一個重複函數,所以我可以再次調用它n再次
- 8. 我們可以多次使用單一光標而無需再次打開它嗎?
- 9. 多次調用函數而無需等待它完成
- 10. 片段再次創建,android?
- 11. 當我們要求用戶再次使用或完成時,最好使用一個?在Java中
- 12. 我們可以返回到應用程序而無需再次點擊它嗎?
- 13. 在Android的多個活動中使用MQTT,而無需斷開連接並再次連接
- 14. 再次與多個IEntityChangeTracker接口實例
- 15. 我可以多次訪問boost :: interprocess :: managed_shared_memory而無需再次打開它嗎?
- 16. 在完成活動時避免再次加載數據
- 17. Android服務在第二次調用bindService()時被再次實例化()
- 18. 春季批處理作業後狀態完成它再次啓動,並再次
- 19. 當再次調用時更新JQueryUI .button()?
- 20. 再次創建RsaCryptoserviceProvider
- 21. 多次實例化一個@ViewChild,所以我可以再次使用HTML Angular 4
- 22. 如何避免再次調用數據庫當我已經擁有全部需要的SQL調用結果時
- 23. 完成後再次啓動jquery動畫
- 24. 我需要再次使用std :: move嗎?
- 25. 當我在瀏覽器中按回時,再次調用App.on(「start」)
- 26. 在前一個完成之前再次調用boost ASIO async_receive()
- 27. 當幻燈片再次出現時再次動畫層
- 28. 再次調用它後維持活動狀態
- 29. 此IfxTransaction已完成;它不再可用
- 30. 此SqlTransaction已完成;它不再可用
是的android:launchMode =「singleTask」會幫助你。 for more http://developer.android.com/guide/topics/manifest/activity-element.html#lmode – vrs