关于使用系统定位持续后台定位的一点心得

使用系统自带定位,不难,难的是后台持续定位。最难解决的就是后台定位的持续性。

       先理解一下进程的优先级:前台进程>可见进程>服务进程>后台进程>空进程。

当按下Home键或者打开其他应用时,就涉及到一个问题,APP从前台进程转变成了后台进程,即使做再多的事情(比如:添加一个悬浮框,或者使用Notification,或者开启一个Service,或者定时唤醒,或者电源管理方案等)也改变不了它是一个后台进程的事实,都是无用功。

其实我们要做的事情只有一件,就是将我们的app添加到系统白名单中,网上也有许多针对各个品牌手机跳转到设置界面的代码,这些其实都不需要,只要两步就可以解决了。

第一步:判断是否已打开省电策略白名单
@RequiresApi(api = Build.VERSION_CODES.M)
public  boolean isIgnoring(Activity activity) {
    boolean isIgonring = false;
    PowerManager manager = (PowerManager) activity.getSystemService(Context.POWER_SERVICE);
    if (null != manager) {
        isIgonring = manager.isIgnoringBatteryOptimizations(activity.getPackageName());
    }

    return isIgonring;
}

第二步:弹出打开省电策略白名单的选项,确定就好了

public void goSetting(Context mContext) {
 Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);//ACTION_APPLICATION_DETAILS_SETTINGS
    Uri uri = Uri.fromParts("package", mContext.getPackageName(), null);
    intent.setData(uri);
        mContext.startActivity(intent);
 
}

最后经过测试,只要不息屏,定位功能可以长时间在后台运行。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值