Как правильно инициировать сетевое взаимодействие на основе получения широковещательного намерения?

Я начинаю работать с C2DM от Google. Часть этого процесса включает в себя получение широковещательного намерения после регистрации. В официальной документации Google по C2DMкод примера показывает следующий комментарий в методе onReceive() BrodcastReceiver:

// Send the registration ID to the 3rd party site that is sending the messages.
// This should be done in a separate thread.

Однако все, что я прочитал, включая документацию для BroadcastReceiver, предполагает, что запуск потока из onReceive() почти наверняка вызовет проблемы, потому что, как только onReceive() вернется, процесс, скорее всего, вскоре будет уничтожен.

Возможно, кто-то только что допустил ошибку, и мне следует просто проигнорировать комментарий об использовании отдельной темы, но я предполагаю, что есть причина, по которой они сказали это, даже если это вводит в заблуждение.

Есть ли причина, по которой нельзя или не следует использовать сеть из того же потока, что и onReceive() перед возвратом? Если это проблематично, как правильно поступить, что должно быть распространенной ситуацией, даже вне C2DM? Запуск службы?

6
задан Darshan Rivka Whittle 13 June 2012 в 08:39
поделиться