小编use*_*615的帖子

何时以及如何从 Android Activity 调用挂起功能?

我有一个suspend函数可以向服务器调用 POST 请求。我想在活动中配置一些文本来显示我从服务器收到的信息。

suspend fun retrieveInfo():String 
Run Code Online (Sandbox Code Playgroud)

我尝试调用 inside onCreateonResume但运行时崩溃。

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吗?

android kotlin kotlin-coroutines

7
推荐指数
1
解决办法
1万
查看次数

在不影响资源的情况下处理Swift DispatchQueue

我有一个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这类任务更好的东西?

asynchronous grand-central-dispatch swift

4
推荐指数
1
解决办法
395
查看次数