Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 364a92eb authored by Romain Guy's avatar Romain Guy Committed by Android (Google) Code Review
Browse files

Merge "Forces AsyncTask to use the main looper Bug #5333924"

parents db0216c6 6dafefb0
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -237,6 +237,7 @@ public abstract class AsyncTask<Params, Progress, Result> {

    /** @hide Used to force static handler to be created. */
    public static void init() {
        // TODO: This doesn't do anything, we should get rid of it
        sHandler.getLooper();
    }

@@ -254,6 +255,7 @@ public abstract class AsyncTask<Params, Progress, Result> {
                mTaskInvoked.set(true);

                Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
                //noinspection unchecked
                return postResult(doInBackground(mParams));
            }
        };
@@ -288,7 +290,7 @@ public abstract class AsyncTask<Params, Progress, Result> {
    }

    private Result postResult(Result result) {
        Message message = sHandler.obtainMessage(MESSAGE_POST_RESULT,
        @SuppressWarnings({"unchecked"}) Message message = sHandler.obtainMessage(MESSAGE_POST_RESULT,
                new AsyncTaskResult<Result>(this, result));
        message.sendToTarget();
        return result;
@@ -598,6 +600,10 @@ public abstract class AsyncTask<Params, Progress, Result> {
    }

    private static class InternalHandler extends Handler {
        InternalHandler() {
            super(Looper.getMainLooper());
        }
        
        @SuppressWarnings({"unchecked", "RawUseOfParameterizedType"})
        @Override
        public void handleMessage(Message msg) {