我在一個非常煩人的問題面前。 我有一個可能需要幾十秒才能執行的代碼。最後,我需要獲得該計算的結果。如何放棄Android線程?
如果我僅僅在主線程上執行代碼,Android會彈出告訴線程被阻塞並詢問是否要強制阻塞。
那麼原理是正常的,每個操作系統的內核需要知道我們的代碼還活着並且沒有被阻塞。
所以我的問題是如何通知Android我們沒死?例如相當於一個Sleep(0)或ProcessMessage()或任何東西...但是這告訴Android我們並沒有死,因爲我們只是在等待或執行相當長的事情...
請不要請回答我:「讓你的計算在一個單獨的線程中」,因爲問題將完全相同。主線程仍然需要坐下來了解線程何時完成及其結果。
問題不會完全一樣。當另一個線程正在計算時,原始線程可以繼續運行用戶界面。它會把問題從一個困難的問題(我怎麼一次做兩件事)轉變爲一個簡單的問題(我如何繼續做同樣的事情,我已經在做)。 –