我正在实现一个为多个应用程序执行REST调用的服务。某些REST调用的结果应存储在内容提供程序中。
我目前正在尝试使用多个线程来执行HTTP请求,解析结果并将数据存储在内容提供程序中。为了做到这一点,我必须将Context传递给每个线程。我不确定这是不是一个好主意,因为我不知道Context是否可以传递给多个线程,因为它的大小,线程安全等等。我在想我只传递一个引用每个线程的Context对象,所以也许它传递它并不重要?
答案 0 :(得分:4)
是的,这很好。我不认为需要显式同步,但是你可以在UI线程上使用Context
执行许多有趣的事情。
由于这个原因,通常明智的做法是在AsyncTask
内部执行您的http请求,这将安排在UI线程上运行onPreExecute
和onPostExecute
的实现,如以及为取消提供一个很好的界面。
答案 1 :(得分:3)
Java中的所有内容都是通过引用传递的,所以它不是“重量级”。
但是,您需要注意,您对Context成员的访问权限是否已正确同步,否则您将遇到线程安全问题。