2017-01-30 31 views
0

我有一個任務需要定期運行,每隔幾秒鐘在後臺運行。因此我使用m_Handler.postDelayed(而不是AsyncTask)。每當任務完成時,它會再次使用另一個postDelayed調用自動關閉,以在幾秒鐘內重新運行。糾正我,如果我錯了,但我不認爲有可能定期調用AsyncTaskAndroid工作人員檢測到活動關閉條件

問題是我的後臺任務可以檢測到我希望我的Activity的UI線程調用setResult,然後finish()的條件。換句話說,我希望我的工作線程能夠告訴UI線程終止活動。

有沒有像這樣的工作線程的方式來發信號的UI線程做些事情?或者,有沒有辦法定期調用AsyncTask?運行可以請求活動關閉的常規任務的最佳方式是什麼?

回答

0

postDelayed不會創建後臺線程;它將消息發佈到通常附加到UI線程的處理程序。因此,如果您使用默認處理程序,則應該已經在主線程上,並且能夠完成該活動。如果你的處理程序在另一個線程上,你可以保持僅僅發佈到默認處理程序。基本上,如果您從活動中的另一個線程運行,則post(或postDelayed)用於在主線程上運行某些內容。

+0

謝謝史蒂夫澄清,並揭穿我的誤解。我想我現在可以弄清楚一個可行的設計。 –