我有一个suspend
函数可以向服务器调用 POST 请求。我想在活动中配置一些文本来显示我从服务器收到的信息。
suspend fun retrieveInfo():String
Run Code Online (Sandbox Code Playgroud)
我尝试调用 inside onCreate
,onResume
但运行时崩溃。
runBlocking {
retrieveInfo()
}
Run Code Online (Sandbox Code Playgroud)
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.google.augmentedimage/com.google.AugmentedImageActivity}: android.os.NetworkOnMainThreadException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3086)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3229)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
Run Code Online (Sandbox Code Playgroud)
我想把这些挂起调用放在哪里(在活动生命周期的哪个部分)?我应该使用其他东西runBlocking
吗?
我有一个DispatchQueue
以60fps接收数据的Swift .然而,取决于电话或接收的数据量,这些数据的计算变得昂贵,以60fps处理.实际上,只处理其中一半或计算资源允许的数量是可以的.
let queue = DispatchQueue(label: "com.test.dataprocessing")
func processData(data: SomeData) {
queue.async {
// data processing
}
}
Run Code Online (Sandbox Code Playgroud)
DispatchQueue
如果资源有限,是否允许我删除一些数据?目前,它正在影响主要的用户界面SceneKit
.或者,有没有比DispatchQueue
这类任务更好的东西?