Android 7.0(Nougat)打盹模式停止Web服务该怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我有一个Android前台服务,带有一个WiFi锁,充当另一台本地设备的Web服务。在打盹模式之前,获取WiFi锁并根据需要提供服务非常有效。

即使我的应用关闭了电池优化功能,当屏幕关闭几分钟时,手机仍然会关闭应用。

如何正确提醒Android,客户请求的服务明确在前台执行,并且他们不希望他们的电话在此时进入睡眠状态?

提问于
用户回答回答于

尝试使用前台服务 - https://developer.android.com/guide/components/services.html#Foreground

前台服务是用户主动意识到的一项服务,当内存不足时,系统不会杀死它。前台服务必须提供状态栏的通知,该通知置于“正在进行”标题下。这意味着,除非服务停止或从前台移除,否则不能驳回通知。

你也可以尝试FULL_WAKE_LOCK或SCREEN_DIM_WAKE_LOCK,看看它是否阻止您的设备进入休眠模式.

用户回答回答于

你可以这样做:就像你打电话给你的服务一样,你可以添加一个代码来保持屏幕清醒。这将避免手机自动锁定。以下是文档中的示例代码片段:

    public class MainActivity extends Activity {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //keep screen awake
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
      }

扫码关注云+社区