Android: 保留网络服务器 运行

Android: keep web server running

我是 运行 Android 服务中的 Web 服务器 (NanoHTTPD)。

onStartCommand() returns 服务中重写方法的值,所以它应该是 "sticky".

但是服务似乎停止了,或者至少网络服务器停止了响应。这主要发生在设备处于非活动状态一段时间且屏幕关闭时。但有时看起来 运行 正常。一直显示服务的通知图标

设备未执行任何其他操作,并且已接通电源。

如何使 Web 服务器保持对请求的响应?或者至少减少中断频率?

在你的情况下,不被系统杀死的最佳机会:

  • 通过startForeground
  • 启动服务
  • 提示您的用户将您的应用包含在 "ignore battery optimizations" 列表中(您不能以编程方式执行此操作): Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); startActivity(intent);