我希望这是一个简单的问题.我想知道你是否可以安全地从非ui线程加载资源.我在谈论"res"文件夹中的内容.我找不到任何明确回答这个问题的文件.SDK中有很多提及与UI Thread上不允许的内容有关.我从未见过以这种方式提到加载资源的任何内容.
例如,我可以从后台线程调用此代码吗?
Bitmap icon = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon_resource);
如果我删除context.getResources()部分并且只执行以下操作会有帮助吗:
Bitmap icon = BitmapFactory.decodeResource(res, R.drawable.icon_resource);
是的,你可以!
但它在很大程度上取决于API如何处理此类调用.例如.如果API需要上下文,那么您可能必须通过保存UI上下文并将其传递给后台线程来提供正确的上下文.
但是,在设置UI组件时,您必须返回UI线程.