gpt4 book ai didi

java - Android runOnUiThread线程安全

转载 作者:行者123 更新时间:2023-11-29 03:31:25 26 4
gpt4 key购买 nike

我想知道我解决特定问题的方法是否是线程安全的(可能不是,这就是我要问的原因)。假设我们有这段代码,在非 UI 线程上运行:

if (myMap != null)
{
runOnUiThread(new Runnable()
{
@Override
public void run()
{
Something something = myMap.get(someKey);
// update some views and stuff
}
});
}

我猜我无法保证 myMap 在可运行对象实际执行时有效,对吧?如果是这种情况,我应该将 myMap != null 移动到 run() 方法中还是只在那里复制它?如果我想确保仅当映射不为空时才执行 runOnUiThread 代码,最好的方法是什么?

谢谢

最佳答案

这就像在执行您提供的代码之前定义 myMap 一样简单:

    Map<String, String> myMap = new Hashmap<String, String>();
//if (myMap != null)
// {
runOnUiThread(new Runnable()
{
@Override
public void run()
{
Something something = myMap.get(someKey); //myMap won't be null
// update some views and stuff
}
});
// }

如果你想检查里面是否有任何数据,那么你可以使用size()方法

if(myMap.size() != 0) {
//do your stuffs
}

关于java - Android runOnUiThread线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18056333/

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