Я начинаю с C2DM от Google. Часть этого процесса предполагает получение трансляции, когда происходит регистрация. В Google's official C2DM documentation, пример кода показывает следующий комментарий в OnReceive в BrodcastReceiver в() метод:Каков правильный способ инициировать сетевую связь на основе приема трансляции?
// Send the registration ID to the 3rd party site that is sending the messages.
// This should be done in a separate thread.
Однако, все, что я читал, в том числе the documentation for BroadcastReceiver, предполагает, что начиная нить из OnReceive() почти наверняка вызовет проблемы , потому что как только onReceive() вернется, процесс, скорее всего, скоро будет убит.
Возможно, кто-то совершил ошибку, и я должен просто проигнорировать комментарий об использовании отдельного потока, но я предполагаю, что есть причина, по которой они это сказали, даже если это вводит в заблуждение.
Есть ли причина, по которой вы не можете или не должны использовать сеть из той же темы, что и onReceive(), прежде чем вернуться? Если это так проблематично, каков правильный способ справиться с тем, что должно быть обычной ситуацией, даже вне C2DM? Запуск службы?
'AsyncTask' здесь не подходит. В принципе, асинхронная операция _any_ не подходит для 'onReceive()'. Взгляните на документацию 'onReceive()' для получения подробной информации. Лучше всего начать «Сервис», который инициирует сетевое общение. – curioustechizen
О да, я думал об этом раньше, но я был рад узнать, что мы были в потоке пользовательского интерфейса, и забыл об этом. Благодарю. –