Я сейчас пишу приложение для Android, которое использует Push-уведомления. Мое приложение успешно регистрируется на серверах Google и получает идентификатор, и у меня есть код на стороне сервера, который использует этот идентификатор и отправляет в приложение уведомление, которое принимается.
Когда получено push-сообщение, я вызываю пользовательский класс, который внутри потока запрашивает информацию на удаленном сервере, которая затем будет обработана в приложении.
Метод, который вызывается так:
private Thread checkUpdate = new Thread() {
public void run() {
try {
URL updateURL = new URL("http://this.site.com/some/path");
URLConnection conn = updateURL.openConnection();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
/* Convert the Bytes read to a String. */
html = new String(baf.toByteArray());
mHandler.post(showUpdate);
} catch (Exception e) {
// Show message if there was an error with the site.
Log.e("C2DM", "Exception: " + e.getMessage());
}
}
};
Строка в LogCat выглядит следующим образом:
07-31 18: 15: 59.903: INFO / C2DM (681): исключение: ноль
В LogCat нет генерируемой трассировки стека, потому что ошибка обрабатывается, я думаю, но я не уверен точно, что вызывает исключение или даже какой тип исключения .. (хотя я знаю, что это не IOException, я пытался поймать это специально, и он пропустил это)