diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index 1a21b55..e485d1e 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -39,7 +39,6 @@
 import android.os.Bundle;
 import android.os.Environment;
 import android.os.Handler;
-import android.os.HandlerExecutor;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.SearchIndexableResource;
@@ -324,14 +323,14 @@
 
         mStartTetheringCallback = new OnStartTetheringCallback(this);
         mTetheringEventCallback = new TetheringEventCallback();
-        mTm.registerTetheringEventCallback(new HandlerExecutor(mHandler), mTetheringEventCallback);
+        mTm.registerTetheringEventCallback(r -> mHandler.post(r), mTetheringEventCallback);
 
         mMassStorageActive = Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
         registerReceiver();
 
         mEthernetListener = new EthernetListener();
         if (mEm != null)
-            mEm.addListener(mEthernetListener);
+            mEm.addListener(mEthernetListener, r -> mHandler.post(r));
 
         updateUsbState();
         updateBluetoothAndEthernetState();
diff --git a/src/com/android/settings/network/EthernetTetherPreferenceController.java b/src/com/android/settings/network/EthernetTetherPreferenceController.java
index 06cd6a7..5b2cab7 100644
--- a/src/com/android/settings/network/EthernetTetherPreferenceController.java
+++ b/src/com/android/settings/network/EthernetTetherPreferenceController.java
@@ -48,13 +48,12 @@
 
     @OnLifecycleEvent(Lifecycle.Event.ON_START)
     public void onStart() {
-        mEthernetListener = new EthernetManager.Listener() {
-            @Override
-            public void onAvailabilityChanged(String iface, boolean isAvailable) {
-                new Handler(Looper.getMainLooper()).post(() -> updateState(mPreference));
-            }
-        };
-        mEthernetManager.addListener(mEthernetListener);
+        mEthernetListener = (iface, isAvailable) -> updateState(mPreference);
+        final Handler handler = new Handler(Looper.getMainLooper());
+        // Executor will execute to post the updateState event to a new handler which is created
+        // from the main looper when the {@link EthernetManager.Listener.onAvailabilityChanged}
+        // is triggerd.
+        mEthernetManager.addListener(mEthernetListener, r -> handler.post(r));
     }
 
     @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
