EasyFloat
EasyFloat copied to clipboard
多进程应用使用会出现 Only the original thread that created a view hierarchy can touch its views
Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:11683) at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:2620) at android.view.ViewRootImpl.invalidateChild(ViewRootImpl.java:2615) at android.view.View.setFlags(View.java:16769) at android.view.View.setVisibility(View.java:12110) at com.lzf.easyfloat.core.FloatingWindowHelper.setVisible(SourceFile:3) at com.lzf.easyfloat.core.FloatingWindowManager.visible(SourceFile:1) at com.lzf.easyfloat.core.FloatingWindowManager.visible$default(SourceFile:2) at com.lzf.easyfloat.utils.LifecycleUtils.setVisible(SourceFile:1) at com.lzf.easyfloat.utils.LifecycleUtils.checkShow(SourceFile:7) at com.lzf.easyfloat.utils.LifecycleUtils.access$checkShow(SourceFile:1) at com.lzf.easyfloat.utils.LifecycleUtils$setLifecycleCallbacks$1.onActivityResumed(SourceFile:3) at android.app.Application.dispatchActivityResumed(Application.java:423) at android.app.Activity.dispatchActivityResumed(Activity.java:1461) at android.app.Activity.onResume(Activity.java:2034)
if (EasyFloat.isShow(EASY_FLOAT_TAG)) {
EasyFloat.dismiss(EASY_FLOAT_TAG)
}
EasyFloat.with(MyApplication.instance)
.setShowPattern(ShowPattern.ALL_TIME)
.setLayout(R.layout.view_float_receive)
// 设置吸附方式,共15种模式,详情参考SidePattern
.setSidePattern(SidePattern.RESULT_TOP)
// 设置浮窗的标签,用于区分多个浮窗
.setTag(EASY_FLOAT_TAG)
.setGravity(Gravity.CENTER_HORIZONTAL)
// 设置浮窗是否可拖拽
.setDragEnable(false)
.registerCallback
EasyFloat.with是Application,ShowPattern.ALL_TIME一直显示(不分前后台) else Builder(LifecycleUtils.getTopActivity() ?: activity) mTopActivity有可能是之前页面被销毁activity,是不是会导致这个这问题?