我们正处在一个大问题,在收到UDP广播数据包。我要疯了...无UDP广播数据包睡眠模式在Android(未处于睡眠模式)
问题是:
1 - 一切正常。
2,我们可以接收数据包。
3,如果我不关闭的Android(home键或键关机按下),我让机器人进入睡眠状态(屏幕关闭 - >的onPause和调用OnStop)
4-我关掉我的接入点(没有wifi,模拟离家出走)。
5-我等待2分钟
6-I打开接入点
7时的Android醒来时,我收到超时所有的时间,在这种情况下:
如果我启动另一次与Eclipse的>超时
的应用程序。如果我破坏应用程序(后退按钮)和重启(的onCreate)应用程序 - >超时
如果我按坎e钮醒 - >超时
如果我禁用和启用无线网络 - > OK,我接收到数据包
如果我按下键关闭唤醒 - > OK,我接收到数据包
Asycntask do in background{
.....
byte[] message = new byte[1500];
s = new DatagramSocket(null);
s.setReuseAddress(true);
s.bind(new InetSocketAddress(dataclass.getDataclass().GGGPort));
p = new DatagramPacket(message, message.length);
s.setSoTimeout(500);
s.setBroadcast(true);
dataclass.getDataclass().setGoOut(true);
s.receive(p);
}
的问题:
1,什么是唤醒Android主按钮和按键开关按钮之间的区别?他们也这么做 - > OnPause,OnStop - >(解锁)OnRestart。使用wifi会发生什么?
2,为什么程序正在运行,但不接受的时候,它的工作原理确定,如果我禁用/启用WiFi?这意味着代码是OK ...这是一个Android的问题?
Pd积:我杀的AsyncTask调用OnStop和我执行上的重新启动
你也可以看看这篇文章:http://stackoverflow.com/questions/9363389/udp-broadcast-packets-not-received-in-sleep-mode?rq=1 – Mixaz