gpt4 book ai didi

java - 安卓/JAVA : Async functions call to avoid blocking calls

转载 作者:行者123 更新时间:2023-12-02 10:27:58 24 4
gpt4 key购买 nike

在我的 Android 应用程序中,有一个名为 userProfile(Promise Promise) 的函数,如下所示:

@ReactMethod
public void userProfile(Promise promise) {
String name = getName();
String number = getNumber();
String userDynamicId = getHttpDynamicId(); // network request
...
promise.resolve(name + number + userDynamicId);
}

userProfile 是一个 ReactMethod,将由 UI 线程处理,但是,由于网络原因,getHttpDynamicId() 可能会花费很长时间。有时,UI 线程会被该函数阻塞。

是否有任何简单的方法可以使用另一个线程来处理 getHttpDynamicId() 以避免 GUI 卡住?或者任何其他多线程方法来处理问题?

最佳答案

来自喵提供的链接:https://developer.android.com/training/best-background 。我设法想出了解决方案。

class MyCallable implements Callable<String> {
@Override
public String call() {
String userDynamicId = "";
try {
// XXXXX Code to get ID
} catch (Exception e) {
console.error(e);
}
return userDynamicId;
}
}

@ReactMethod
public void userProfile(Promise promise) {
String name = getName();
String number = getNumber();
// instantiate MyCallable
// Create executor and use Future to get the result from call()
promise.resolve(name + number + userDynamicId);
}

关于java - 安卓/JAVA : Async functions call to avoid blocking calls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53790122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com