2011-04-21 55 views
1

我寫了一個簡單的應用程序,通過文本到語音朗讀文本頁面。它原則上工作,但現在我需要以對最終用戶有意義的方式實現onPause(),onResume()等。活動的副作用不再可見?

具體有關的onPause()我有兩個選擇:

  1. 暫停朗讀,以意向 恰好繼續從左點。
  2. 正常繼續,就好像 活動仍然可見。

第二個選項看起來更合理,因爲如果它不是視覺活動,爲什麼讓視覺干擾中斷語音?

但是,我不確定是否有其他系統範圍的考慮(「副作用」),我將onPause()實施爲「無所事事」功能時必須考慮到這些因素。

除了在活動不再可見時調用onPause()時,在決定是停止還是不停止文本到語音轉換時,我應該考慮其他事件還是副作用?

回答

1

想到的唯一情況是如果系統內存不足。如果需要記憶,系統會消滅視線外的活動。我建議做的是使用長時間運行的服務而不是活動。讓活動管理服務,讓服務處理文本的閱讀。如果你仍然想使用一個活動,我相信你可以設置一個設置來使你看不見的活動成爲最後的手段。

+0

@Spidy如果系統內存不足,那麼調用onDestroy(),此時我肯定會停止講話。我唯一的辯論是關於onPause()和onStop()。 – an00b 2011-04-21 16:35:44

+2

@ an00b您可能想看看活動生命週期圖。 onDestroy()不會被調用。活動將會消亡,讀者將停止,但onDestroy()不會被稱爲 – Spidy 2011-04-21 16:40:35

+0

@Spidy謝謝你指出我的錯誤。我現在正在查看活動生命週期圖,我發現onStop(),另一方面,肯定會被調用。對?所以問題仍然是關於onPause()。 – an00b 2011-04-21 16:47:17

1

如果您被電話(或任何人聽到的)中斷,您將不想繼續發出聲音。

+0

優秀的一點。是否可以在onPause()中檢查是否中斷我的活動的事件的**類型**,並據此決定是停止還是繼續? – an00b 2011-04-21 16:31:55

+1

您可以在onPause()中檢查手機的狀態以查看它是否是調用,但是從更一般的意義上來說,似乎並沒有明顯的方法來做這件事。 – 2011-04-21 16:49:02