Android에서 더 이상 사용되지 않는 핸들러를 처리하는 방법 [중복]

Aug 21 2020

이전에는이 ​​코드가 완벽하게 작동했습니다.

이제 android.os.handler가 더 이상 사용되지 않습니다.

private final Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case MESSAGE_STATE_CHANGE:
        break;
        }
    }

이 문제를 어떻게 해결할 수 있습니까?

답변

10 AlphaOne Aug 21 2020 at 06:31

의견에서 Mike가 언급했듯이 Handler더 이상 사용되지 않습니다. Handler 객체를 생성하는 방법 new Handler()은 더 이상 사용되지 않습니다.

문서에 따라 사용 new Handler()하면 버그가 발생할 수 있습니다. 따라서 핸들러의 루퍼를 명시 적으로 지정해야합니다. 루퍼는 null이 아니어야합니다.

코드를 참조하십시오 :

private final Handler mHandler = new Handler(Looper.getMainLooper()) {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case MESSAGE_STATE_CHANGE:
        break;
        }
    }