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

コメントでマイクが述べたように、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;
        }
    }