diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java
index e20305d..dcfba42 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java
@@ -40,7 +40,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -82,7 +81,6 @@
     }
 
     @Test
-    @Ignore
     public void updateBatteryTipAvailabilityCache_hasImportantTip_shouldReturnTrue() {
         final List<BatteryTip> tips = new ArrayList<>();
         tips.add(new LowBatteryTip(BatteryTip.StateType.INVISIBLE, false, ""));
@@ -108,7 +106,6 @@
     }
 
     @Test
-    @Ignore
     @Config(shadows = {
             BatteryFixSliceTest.ShadowEarlyWarningTip.class,
             BatteryFixSliceTest.ShadowSliceBackgroundWorker.class
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowThreadUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowThreadUtils.java
index 285d88d..61ce13d 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowThreadUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowThreadUtils.java
@@ -16,16 +16,21 @@
 
 package com.android.settings.testutils.shadow;
 
+import android.util.Log;
+
 import com.android.settingslib.utils.ThreadUtils;
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.annotation.Resetter;
 
+import java.util.concurrent.Callable;
+
 @Implements(ThreadUtils.class)
 public class ShadowThreadUtils {
 
     private static boolean sIsMainThread = true;
+    private static final String TAG = "ShadowThreadUtils";
 
     @Resetter
     public static void reset() {
@@ -38,6 +43,15 @@
     }
 
     @Implementation
+    protected static void postOnBackgroundThread(Callable callable) {
+        try {
+            callable.call();
+        } catch (Exception e) {
+            Log.e(TAG, e.getMessage(), e);
+        }
+    }
+
+    @Implementation
     protected static void postOnMainThread(Runnable runnable) {
         runnable.run();
     }
