android怎么回調(diào)多個(gè)線程的執(zhí)行結(jié)果

小億
122
2024-05-15 19:27:27

在Android開(kāi)發(fā)中,可以通過(guò)回調(diào)函數(shù)來(lái)獲取多個(gè)線程的執(zhí)行結(jié)果。一種常見(jiàn)的方法是使用Handler來(lái)實(shí)現(xiàn)多線程之間的通信和數(shù)據(jù)傳遞。

首先,定義一個(gè)接口來(lái)回調(diào)多個(gè)線程的執(zhí)行結(jié)果:

public interface Callback {
    void onResult1(String result1);
    void onResult2(String result2);
    // 可以定義更多的回調(diào)方法
}

然后,在主線程中實(shí)現(xiàn)該接口,并在回調(diào)方法中處理多個(gè)線程的執(zhí)行結(jié)果:

public class MainActivity extends AppCompatActivity implements Callback {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 創(chuàng)建并啟動(dòng)多個(gè)線程
        Thread1 thread1 = new Thread1(this);
        Thread2 thread2 = new Thread2(this);
        thread1.start();
        thread2.start();
    }

    @Override
    public void onResult1(String result1) {
        // 處理線程1的執(zhí)行結(jié)果
    }

    @Override
    public void onResult2(String result2) {
        // 處理線程2的執(zhí)行結(jié)果
    }
}

在多個(gè)線程中調(diào)用回調(diào)方法來(lái)傳遞執(zhí)行結(jié)果:

public class Thread1 extends Thread {
    private Callback callback;

    public Thread1(Callback callback) {
        this.callback = callback;
    }

    @Override
    public void run() {
        // 執(zhí)行耗時(shí)操作
        String result1 = "result1";
        callback.onResult1(result1);
    }
}

public class Thread2 extends Thread {
    private Callback callback;

    public Thread2(Callback callback) {
        this.callback = callback;
    }

    @Override
    public void run() {
        // 執(zhí)行耗時(shí)操作
        String result2 = "result2";
        callback.onResult2(result2);
    }
}

通過(guò)這種方式,可以實(shí)現(xiàn)多個(gè)線程的執(zhí)行結(jié)果回調(diào)到主線程,并在主線程中處理這些結(jié)果。當(dāng)然,也可以使用其他方式來(lái)實(shí)現(xiàn)多個(gè)線程的結(jié)果回調(diào),如使用Handler、RxJava等庫(kù)。不過(guò)以上方法是比較常見(jiàn)且簡(jiǎn)單的一種實(shí)現(xiàn)方式。

0