HarmonyOS 鸿蒙Next Promise.then中 promptAction.showToast无展示,只有在view的onclick方法中才能展示
HarmonyOS 鸿蒙Next Promise.then中 promptAction.showToast无展示,只有在view的onclick方法中才能展示
10-16 14:55:20.572 E [window_session_impl.cpp] SetWindowType<1497>: set window type permission denied!
10-16 14:55:20.574 E SendRequest 152: failed, handle:23 error:10 desc:*.ISceneSessionManager proxy:877214208 time:64081775819385
10-16 14:55:20.574 E <74>CreateAndConnectSpecificSession: SendRequest failed
更多关于HarmonyOS 鸿蒙Next Promise.then中 promptAction.showToast无展示,只有在view的onclick方法中才能展示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
2:TOP_MOST这个接口后续会改变,窗口限制弹出了,目前建议使用DEFAULT
更多关于HarmonyOS 鸿蒙Next Promise.then中 promptAction.showToast无展示,只有在view的onclick方法中才能展示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙系统中,如果你在.then
链中调用promptAction.showToast
没有展示,而在视图的onclick
方法中能够正常展示,这通常与UI线程和异步执行环境有关。在鸿蒙系统中,UI更新(如显示Toast)需要在UI线程(主线程)中执行。
.then
链中的代码通常是在异步任务完成后执行的,如果这个异步任务不是在UI线程中发起的,那么.then
中的代码也可能在非UI线程执行。这会导致在非UI线程中尝试更新UI,从而无法正确显示Toast。
解决这个问题的方法是确保Toast的显示操作在UI线程中执行。你可以通过以下几种方式实现:
-
使用
Ability
的runOnUiThread
方法:如果你的代码在Ability
类中,可以使用runOnUiThread
来包裹显示Toast的代码,确保它在UI线程执行。 -
使用
Post
方法:如果你有一个UI组件的引用(如Component
或View
),可以使用其post
方法来安排一个Runnable在UI线程执行。 -
确保异步任务在UI线程发起:如果可能,确保你的异步任务(如网络请求)是在UI线程中发起的,这样
.then
链中的后续操作也更可能在UI线程中执行。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html