我使用NanoHTTPD在Android应用中呈现Web服务器。我使用wifi锁来保持网络活跃,并使用CPU锁定以保持CPU清醒,并通过前台服务保持它运行,以便它永远不会死亡。
我发现它可以从其他设备访问半小时,然后半小时无法访问。每当它变得无法访问时,我可以在Android设备上打开safari并浏览到0.0.0.0:30000并验证服务器确实在运行。我还检查确保wifi连接似乎是。
有关何处查看的建议?
答案 0 :(得分:1)
我不知道它停止工作的确切原因。有一些方法可以保持服务运行,但是如果这可以帮助你,可以在你的活动onCreate中尝试这行代码
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
答案 1 :(得分:0)
当它变得无法访问时,您是否可以验证网络连接是否真的有效?不只是在UI中显示为“已连接”,而且实际上使用HTTP连接到远程服务器。当您这样做时,您的本地HTTP服务器是否突然可以从远程访问?在戳戳时,您可以远程观察您的服务器:
watch curl http://{android_ip}:3000/
您是否保持屏幕开启或屏幕是否熄灭?它可能是PowerLock的错误实现。
其他无线路由器会发生这种情况吗?这可能是Wifi省电模式(PSM)的问题。