簡體   English   中英

按下區分首頁按鈕,按下后退按鈕並啟動新活動

[英]Differentiate home button pressed, back button pressed and new activity launched

我有一個FragmentActivity 在其onPause函數中,我想區分

  • 按下主頁按鈕
  • 按下后退按鈕
  • 啟動一個新的活動(這將導致片段活動的onPause被調用)

對於后退按鈕按下的情況 ,我知道可以通過使用this.isFinishing() == truethis.isFinishing() == true

但是,如何啟動新的活動案例呢?

我知道也許我可以在啟動新活動之前設置一個標志,並在onPause函數末尾重置該標志。 但是,這對我來說聽起來並不優雅。 有沒有更好更好的方法?

您可以創建一個單例類來跟蹤您的活動何時開始/繼續/暫停/停止。 創建一個基本Activity類,以在其每個生命周期回調中調用單例。

如果在活動之間進行轉換時查看回調的順序,則應該看到以下內容:

Pause Activity A
Create Activity B
Start Activity B
Resume Activity B
Stop Activity A

從活動A的onStop()調用單身人士時,您可以檢查是否有另一個活動(顯然屬於您的應用)的onResume()進行了調用。 如果沒有,您就知道用戶已更改應用程序或返回主屏幕。

至於按下后退按鈕,您可以檢查isFinishing() ,或覆蓋Activity.onBackPressed()並在那里進行簿記。

暫無
暫無

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

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