原由是在Act中,跳转到其他Act时,回传参数后显示Dialog,
1.其他跳转的ACt在选择后都会finsh掉
2.使用eventbus 进行传值传参
@Subscribe(threadMode = ThreadMode.MAIN)
public void event(InfraredEvent event) {
if (event.getUpdateOk().equals(INFRARE_MATCH_SUCEESS)) {
Log.e(TAG,"更新成功回调");
showInputDialog1(); //此处为打开Dialog
//showInputDialog("设备名称");
}
}
event回传参数后,进行显示Dialog,网上查的是在其他ACT在finsh时,未成功传值就挂掉了。
我也试过在回传值时做延迟finsh,但不行。
目前的解决方法是:
直接在该ACT中做延迟后显示即可
public void showInputDialog1(){
new Thread(() -> {
try {
Thread.sleep(600);
runOnUiThread(() -> {
showInputDialog("设备名称");
});
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
}
这样延迟600ms就能正常显示了,但是我发现在android9以下就不会有这个问题,未知原因。
–结束,仅做记录。原因有空再找找。