簡體   English   中英

在Android中,如何檢測為什么我的活動得以恢復?

[英]In Android, how can I detect why my activity was resumed?

我正在開發一個活動,它執行一些自己的狀態管理。 我正在嘗試區分以下onResume案例:

  1. 新品發布
  2. 任務開關(長按主頁按鈕)
  3. 在同一應用程序中的其他活動之后恢復
  4. 睡覺后醒來
  5. 方向改變

活動意圖或其他方面是否有什么可以幫助我區分這些?

出於好奇和某些背景...我想在4和5上保留我的內部歷史記錄堆棧。在第2和3種情況下,我將保留相同的當前頁面,但會刪除歷史記錄(允許使用正常的后退按鈕功能接管)。 情況1將初始化為活動的內部起始頁(並且在onCreate的幫助下可以很容易地檢測到)。

活動意圖或其他方面是否有什么可以幫助我區分這些?

項#4與AFAIK onResume()沒有關系。

盡管您可以通過從onRetainNonConfigurationInstance()返回值並通過getLastNonConfigurationInstance()查看onResume()是否存在“項目”來更好地通過android:configChangesonConfigurationChange()處理項目#5。

一旦開始考慮諸如“被踢出內存以釋放RAM”之類的可能性,其他情況不僅是三種情況,而且可能是兩倍。

袖手旁觀,就好像您做出了一些不幸的體系結構決定一樣(“內部歷史記錄堆棧...擦除歷史記錄...讓正常的后退按鈕功能在那個時候接管”)。 Android是圍繞許多廉價活動設計的,您似乎違反了這一戒律。 歡迎您這樣做,但請記住,Android對您選擇的模式的支持可能會受到限制。

暫無
暫無

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

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