7

我有一个希望是一个简单的问题。我想知道您是否可以安全地从非 ui 线程加载资源。我说的是“res”文件夹中的东西。我只是找不到任何可以明确回答这个问题的文档。SDK 中有很多关于 UI 线程上不允许的内容的提及。我从未见过任何提到以这种方式加载资源的东西。

例如,我可以从后台线程调用此代码吗? Bitmap icon = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon_resource);

如果我删除 context.getResources() 部分并且只做: Bitmap icon = BitmapFactory.decodeResource(res, R.drawable.icon_resource);

4

1 回答 1

7

是的,你可以!

但这在很大程度上取决于 API 如何处理此类调用。例如。如果 API 需要上下文,那么您可能必须通过保存 UI 上下文并将其传递给后台线程来为其提供正确的上下文。

但是,在设置 UI 组件时,您将不得不返回到 UI 线程。

于 2013-01-23T04:37:42.077 回答