2011-04-04 73 views
3

我正在实现一个服务,REST调用多个应用程序。某些REST调用的结果应该存储在内容提供者中。将上下文传递给多个线程是否安全?

我目前正在尝试使用多个线程来执行HTTP请求,解析结果并将数据存储在内容提供者中。为了做到这一点,我必须将上下文传递给每个线程。我不确定这是否是一个好主意,因为我不知道Context是否可以传递给多个线程,因为它的大小,线程安全等等。我想我只是传递一个引用每个线程的Context对象,所以也许它不会传递它?

回答

4

是的,这很好。我不相信明确的同步是必需的,但你可以用Context做的许多有趣的事情必须发生在UI线程上。

因为这个原因,它通常是明智的,做一个AsyncTask内的HTTP请求,这将安排您的onPreExecute实施和onPostExecute在UI线程上运行,以及为消除提供了一个很好的接口。

+0

如果我从服务产生的线程调用sendBroadcast,还是应该玩安全并使用处理函数? – avendael 2011-04-04 14:00:37

+0

我不确定。如果有问题,它可能会抱怨。 – 2011-04-04 14:05:37

+0

好的。不妨试试。谢谢! – avendael 2011-04-04 14:34:41

3

几乎所有的Java都通过引用传递,所以它不是“重量级”的。

但是,您需要小心您对上下文成员的访问权限是否适当同步,否则您将遇到线程安全问题。

相关问题