紀錄 1

問題

在 OkHttp 的 onResponse 中使用 Toast 會噴錯,但 Retrofit 不會。 

原因

OkHttp 不是執行在 UI Thread,但 Retrofit 是。

紀錄 2

問題

在 OkHttp 的 onResponse 中使用 Toast 會噴錯。

原因

OkHttp 不是執行在 UI Thread。

解法

// 解法1
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
    @Override
    public void run() {
        // TODO
    }
});
// 解法2
activity.runOnUiThread(new Runnable() {
    @Override
    public void run() {
        
    }
});