diff --git a/docs/plugin/uts-for-android.md b/docs/plugin/uts-for-android.md index 6f0712e68bcae3cba32fec70d0b3fe876be2fc03..fe9bac43196d22f17af091acac0840e192569998 100644 --- a/docs/plugin/uts-for-android.md +++ b/docs/plugin/uts-for-android.md @@ -120,15 +120,41 @@ class XXX{ ### 2.4 线程环境差异 -UTS环境中,默认是没有线程概念的。 代码默认执行在uts 单独的线程池中。 +UTS环境中,默认是没有线程概念的。 + +如果需要执行异步任务,建议通过内置函数`UTSAndroid.getDispatcher("io")`执行 + +[文档地址](https://doc.dcloud.net.cn/uni-app-x/uts/utsandroid.html#getdispatcher) + -如果需要执行异步任务,建议通过内置函数`setTimeOut`执行 ```ts -console.log("这里是UTS默认线程 :" + Thread.currentThread().getName()) -setTimeOut(function(){ - console.log("这里是异步任务线程 :" + Thread.currentThread().getName()) -},1000) +UTSAndroid.getDispatcher("main").async(function(_){ + if(Thread.currentThread().name != 'main'){ + callback(false,"main thread error") + return + } + UTSAndroid.getDispatcher("dom").async(function(_){ + /** + * dom 参数,只在2.0生效,1.0会自动切换到main线程 + */ + if(Thread.currentThread().name != 'main' && Thread.currentThread().name != 'io_dcloud_uniapp_dom'){ + callback(false,"dom thread error") + return + } + UTSAndroid.getDispatcher("io").async(function(_){ + /** + * dom 参数,只在2.0生效,1.0会自动切换到main线程 + */ + if(!Thread.currentThread().name.contains("DefaultDispatcher")){ + callback(false,"io thread error") + return + } + callback(true,"pass") + },null) + + },null) +},null) ``` 如果是android原生api 需要部分代码必须执行在UI线程,则需要通过原生api进行操作: