From d5c38ae537d14e20c2ebba3f098cbc459638f1f9 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Wed, 11 Jul 2018 16:57:41 +0800 Subject: [PATCH] fix: java.lang.IllegalStateException: Calling View methods on another thread than the UI thread. at com.android.webview.chromium.WebViewChromium.createThreadException(WebViewChromium.java:248) at com.android.webview.chromium.WebViewChromium.checkThread(WebViewChromium.java:263) at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:163) at android.webkit.WebView.(WebView.java:548) at android.webkit.WebView.(WebView.java:483) at android.webkit.WebView.(WebView.java:466) at android.webkit.WebView.(WebView.java:453) at org.autojs.autojs.ui.widget.CommonMarkdownView.(CommonMarkdownView.java:49) at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:288) at android.view.LayoutInflater.createView(LayoutInflater.java:611) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:747) at android.view.LayoutInflater.rInflate(LayoutInflater.java:810) at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) at android.view.LayoutInflater.inflate(LayoutInflater.java:508) at android.view.LayoutInflater.inflate(LayoutInflater.java:418) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at android.view.View.inflate(View.java:18461) at org.autojs.autojs.ui.update.UpdateInfoDialogBuilder.updateInfo(UpdateInfoDialogBuilder.java:45) at org.autojs.autojs.ui.update.UpdateInfoDialogBuilder.(UpdateInfoDialogBuilder.java:40) at org.autojs.autojs.ui.update.VersionGuard.showUpdateInfoIfNeeded(VersionGuard.java:58) at org.autojs.autojs.ui.update.VersionGuard.access$200(VersionGuard.java:21) at org.autojs.autojs.ui.update.VersionGuard$1.onNext(VersionGuard.java:49) at org.autojs.autojs.ui.update.VersionGuard$1.onNext(VersionGuard.java:42) at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onNext(ObservableSubscribeOn.java:58) at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51) at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37) at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(CallObservable.java:43) at io.reactivex.Observable.subscribe(Observable.java:10901) at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34) at io.reactivex.Observable.subscribe(Observable.java:10901) at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96) at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:452) at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:61) at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:52) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818) --- .../autojs/autojs/ui/update/VersionGuard.java | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/autojs/autojs/ui/update/VersionGuard.java b/app/src/main/java/org/autojs/autojs/ui/update/VersionGuard.java index ac5529c0..588ed99c 100644 --- a/app/src/main/java/org/autojs/autojs/ui/update/VersionGuard.java +++ b/app/src/main/java/org/autojs/autojs/ui/update/VersionGuard.java @@ -12,6 +12,7 @@ import org.autojs.autojs.network.VersionService; import org.autojs.autojs.network.entity.VersionInfo; import org.autojs.autojs.tool.SimpleObserver; +import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.Consumer; /** @@ -39,6 +40,7 @@ public class VersionGuard { private void checkForUpdatesIfNeeded() { mVersionService.checkForUpdatesIfNeededAndUsingWifi(mActivity) + .observeOn(AndroidSchedulers.mainThread()) .subscribe(new SimpleObserver() { @Override @@ -76,23 +78,15 @@ public class VersionGuard { .negativeText(R.string.text_exit) .cancelable(false) .autoDismiss(false) - .onAny(new MaterialDialog.SingleButtonCallback() { - @Override - public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { - if (which == DialogAction.POSITIVE) { - new UpdateCheckDialog(mActivity) - .show(); - } else { - mActivity.finish(); - } - } - }) - .dismissListener(new DialogInterface.OnDismissListener() { - @Override - public void onDismiss(DialogInterface dialog) { - mDeprecatedDialog = null; + .onAny((dialog, which) -> { + if (which == DialogAction.POSITIVE) { + new UpdateCheckDialog(mActivity) + .show(); + } else { + mActivity.finish(); } }) + .dismissListener(dialog -> mDeprecatedDialog = null) .show(); } }