是否可以在手机关机前发送Http请求?

时间:2011-04-07 07:59:34

标签: android httpwebrequest broadcastreceiver

我想在电话关闭之前向某个服务器发送请求。为此,我将实现一个接收ACTION_SHUTDOWN广播的BroadcastReceiver。收到此广播后,服务将向某个服务器发送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

here。文章指出这是Android关机脚本。我们可以看到,dhcpcd是第一个在关机时停止的守护进程。但是我仍然不知道在脚本执行之前是否会有足够的时间。

那么,是否可以在手机关机前发送HttpRequest?如果是这样,怎么样?

编辑:假设存在网络连接,并且通过正常方式关闭手机。

1 个答案:

答案 0 :(得分:2)

只需尝试一下。另一种方法是简单地在首选项文件中保存关闭时所需的信息(如关机时间,......)。然后在手机启动时将此数据发送到您的服务器(您可以获得奖励以检查服务器是否实际收到它并在不成功时重试)。

您甚至可以想象两者都做,因为Send data after ACTION_SHUTDOWN is received表示有时间发送一些网络数据。