diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index 8849f2d..eff8e17 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -41,6 +41,7 @@
 import android.net.NetworkPolicy;
 import android.net.NetworkStats;
 import android.net.NetworkStatsHistory;
+import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.ServiceManager;
@@ -568,14 +569,25 @@
     private void updateDetailData() {
         if (LOGD) Log.d(TAG, "updateDetailData()");
 
-        try {
-            final long[] range = mChart.getInspectRange();
-            final NetworkStats stats = mStatsService.getSummaryForAllUid(
-                    range[0], range[1], mTemplate);
-            mAdapter.bindStats(stats);
-        } catch (RemoteException e) {
-            Log.w(TAG, "problem reading stats");
-        }
+        new AsyncTask<Void, Void, NetworkStats>() {
+            @Override
+            protected NetworkStats doInBackground(Void... params) {
+                try {
+                    final long[] range = mChart.getInspectRange();
+                    return mStatsService.getSummaryForAllUid(range[0], range[1], mTemplate);
+                } catch (RemoteException e) {
+                    Log.w(TAG, "problem reading stats");
+                }
+                return null;
+            }
+
+            @Override
+            protected void onPostExecute(NetworkStats stats) {
+                if (stats != null) {
+                    mAdapter.bindStats(stats);
+                }
+            }
+        }.execute();
     }
 
     private static String getActiveSubscriberId(Context context) {
