Можно ли отправить HttpRequest непосредственно перед выключением телефона? - PullRequest
0 голосов
/ 07 апреля 2011

Я хочу отправить запрос на какой-либо сервер непосредственно перед выключением телефона. Для этого я реализую BroadcastReceiver, который получает трансляцию ACTION_SHUTDOWN. При получении этой трансляции служба сгенерирует запрос HttpRequest на некоторый сервер.

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

Я осмотрел интернет и обнаружил:

#!/system/bin/sh
stop;
stop dhcpcd;

sleep 1;

for i in `cat /proc/mounts | cut -f 2 -d " "`;
do
   busybox mount -o remount,ro $i 2>&1 > /dev/null;
done

sync;

if [ "$1" = "-r" ];
then
   toolbox reboot;
fi

if [ "$1" = "-rr" ];
then
   toolbox reboot recovery;
else 
   reboot -p;
fi

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

Итак, можно ли отправить HttpRequest до выключения телефона? Если да, то как?

РЕДАКТИРОВАТЬ: при условии, что сетевое соединение присутствует, и телефон выключен обычным способом.

1 Ответ

2 голосов
/ 07 апреля 2011

Просто попробуйте. Еще один способ сделать это может быть просто сохранить необходимую информацию о завершении работы в файле настроек (например, время отключения, ...). Затем при запуске телефона отправьте эти данные на свой сервер (и у вас есть бонус, чтобы иметь возможность проверить, действительно ли сервер их получает, и повторите попытку, если это не удалось).

Вы даже можете себе представить, что и то, и другое Отправить данные после получения ACTION_SHUTDOWN предполагает, что есть время для отправки некоторых сетевых данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...