zoukankan      html  css  js  c++  java
  • Handling Doze Mode & Background Restrictions of Oreo

      Doze mode introduced in android marshmallow performs battery optimisations by keeping the device in sleep mode and forcing network restrictions on it.
      Also the background restrictions introduced in android Oreo restrict the background apps to receive background locations only a few times per hour.

      To handle both these issues and continuously track user location, app has to appear as a foreground process for the android system.
      This could be achieved by starting a foreground service in the app.

      Refer android docs for more information on Foreground services.
      This way we can bypass both the restrictions and app can continuously receive and post locations.

    Dome code:

    Notification notification = new NotificationCompat.Builder(this,CHANNEL_ID)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle(getString(R.string.app_name))
                    .setContentText(getString(R.string.tracking_now))
                    .setContentIntent(pendingIntent).build();
    
            startForeground(1, notification);
  • 相关阅读:
    URLEncode解决url中有特殊字符的问题
    监控系统概览
    SpringBoot 上传文件夹
    关于postgresql报 ERROR: XXX does not exist
    postgresql学习
    git学习
    学习博客
    面试准备
    jvm
    线程池面试题
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13891445.html
Copyright © 2011-2022 走看看