[英]Best way to execute method asynchronously in Android (compact and correct)
假設我有一個活動在屏幕上顯示一些內容。 我需要異步執行一些方法(asyncMethod),當它完成后,我需要在屏幕上更新數據。 這是最正確和最簡單的方法是什么?
目前我所知道的最簡單的方法是使用線程:
new Thread(new Runnable() {
public void run() {
asyncMethod();
}
}).start();
我熟悉AsyncTask,但它比使用線程更復雜,並且對於我需要異步運行的每個方法,需要創建新的AsyncTask,同時這會大大增加代碼大小。
我想到了一些通用的AsincTask,它將方法作為參數而不是執行它,但據我所知,在Java中不可能將方法作為參數傳遞。
換句話說,我正在尋找異步執行方法的最緊湊(但正確)的方法。
Handler
和Looper
。
大多數情況下,將Handler保持為UI線程的Looper
,然后使用它來發布Runnable
。 例如:
Handler h = new Handler();
//later to update UI
h.post(new Runnable(//whatever);
PS: Handler
和Looper
太棒了。 我為Java 重新制作了這么多。
如果你使用了Command設計模式,並制作了一個可以運行你的“命令”對象的通用AsyncTask,那么每個任務只需要一個類,並且只需要一個通用的AsyncTask來執行它們。 你甚至可以做一個通用的“命令”,通過反射或一些預定義的接口方法執行一個方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.