0
我正在實現對數據庫執行查詢的庫函數,並且此查詢可能有時會足夠長,導致在UI線程上執行長操作的StrictMode
警告。針對UI線程上的長查詢的Android StrictMode錯誤
我想知道在這裏適用的正確模式是什麼?如何將一個異步調用包裝在一個函數中,該函數的結果應該是同步的?
該函數獲取表名和列,並使用正常的Cursor
/resolver.query pattern
功能返回布爾值。如果需要,我可以添加代碼。
非常感謝, 安德烈
一個AsyncTask將不可行,因爲主方法只是在不等待AsyncTask完成的情況下退出。 我想 '布爾runIfTrue(Runnable的回調){ 新的AsyncTask(){(...)onPostExecute {如果(結果==真){//運行Runnable的回調}}}}' –
(註釋可不會被編輯)然後我會執行asynctask,然後它將在postExecute中運行回調。 –
@AndreaDellaCorte - 你需要拆分你的「主要方法」,以便從數據庫中獲得結果的部分在'AsyncTask'的onPostExecute方法中執行(或者由'onPostExecute'調用的方法中執行。 )。 –