如何在API级别<28上获取主线程的执行器

时间:2018-10-04 08:26:20

标签: android multithreading android-context executor

在API级别28(Pie)上,df.plot(x = 'RngUni[m]', y = 'PowUni[dB]', kind = 'scatter')类中引入了一种新方法,以获取主线程getMainExecutor()的执行器。

如何使该执行程序的API级别低于28?

3 个答案:

答案 0 :(得分:5)

您可以使用翻新https://github.com/square/retrofit/blob/master/retrofit/src/main/java/retrofit2/Platform.java中的代码段

public class MainThreadExecutor implements Executor {
    private final Handler handler = new Handler(Looper.getMainLooper());

    @Override 
    public void execute(Runnable r) {
        handler.post(r);
    }
}   

答案 1 :(得分:1)

您可以使用new HandlerExecutor(Looper.getMainLooper());中的com.google.android.gms.common.util.concurrent.HandlerExecutor ...最后,答案与atarasenko相同。

我为此在Kotlin中添加了扩展名:

fun Context.mainExecutor(): Executor {
    return if (VERSION.SDK_INT >= VERSION_CODES.P) {
        mainExecutor
    } else {
        HandlerExecutor(mainLooper)
    }
}

答案 2 :(得分:1)