diff --git a/core/java/android/os/AsyncTask.java b/core/java/android/os/AsyncTask.java index 63f39c59b1b7f..5d022b813a247 100644 --- a/core/java/android/os/AsyncTask.java +++ b/core/java/android/os/AsyncTask.java @@ -298,12 +298,16 @@ public abstract class AsyncTask { mWorker = new WorkerRunnable() { public Result call() throws Exception { mTaskInvoked.set(true); - - Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); - //noinspection unchecked - Result result = doInBackground(mParams); - Binder.flushPendingCommands(); - return postResult(result); + Result result = null; + try { + Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); + //noinspection unchecked + result = doInBackground(mParams); + Binder.flushPendingCommands(); + } finally { + postResult(result); + } + return result; } };