gpt4 book ai didi

android - 功能挂起UI

转载 作者:行者123 更新时间:2023-11-29 22:51:53 24 4
gpt4 key购买 nike

I am working with Dart, AndroidStudio, Flutter

我需要调用一个函数来散列我的密码。哈希函数需要时间来执行。该代码应按新闻运行。函数是:

String getHash(Stirng input)

我这样调用它:

onPressed:{
newPass=getHash(currentPass);
}

它会阻塞 UI 线程。该函数来自某些 API,因此无法编辑。

我创建了一个async 方法并在async 函数中调用了getHash()

Future<String> asyncMethodToGetHash(String input) async{
return await geHash(input);
}

但它仍然会阻塞 UI 线程。我应该如何调用它才能使 UI 不被阻塞?

最佳答案

您可以使用 flutter 提供的 compute() 方法,该方法将在单独的 isolate(dart 相当于线程)中运行代码。像这样:

static String getHash(String input){
return hash(input); // your code to calculate hash here.
}

String computeHash(String input){
return await compute(getHash, input);
}

请记住,您传递给 compute() 方法的函数必须是静态的,并且只能接受一个参数。由于 isolate 不共享内存,因此函数中使用的每个变量都必须作为参数传递。因此,如果您必须将多个方法传递给该函数,则必须制作一个参数列表。

关于android - 功能挂起UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57810071/

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