簡體   English   中英

在Android中異步執行方法的最佳方法(緊湊和正確)

[英]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中不可能將方法作為參數傳遞。

換句話說,我正在尋找異步執行方法的最緊湊(但正確)的方法。

HandlerLooper

大多數情況下,將Handler保持為UI線程的Looper ,然后使用它來發布Runnable 例如:

Handler h = new Handler();
//later to update UI
h.post(new Runnable(//whatever);

PS: HandlerLooper太棒了。 我為Java 重新制作了這么多。

如果你使用了Command設計模式,並制作了一個可以運行你的“命令”對象的通用AsyncTask,那么每個任務只需要一個類,並且只需要一個通用的AsyncTask來執行它們。 你甚至可以做一個通用的“命令”,通過反射或一些預定義的接口方法執行一個方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM