Arcgis for android 100.15 林业防火外业采集APP之 (四)APP保活

因为APP有一个模块是要记录巡查轨迹(在下一篇文章中介绍),需要在后台持续记录GPS数据,考虑到耗电因素,最好是能在熄屏状态下运行,而熄屏状态下APP又有可能被系统Kill掉,所以,采取将Service设置前台服务,并播放无声音乐,同时引导用户设置白名单的方式,确保巡查轨迹记录完整。

先介绍以下用到的三种保活技术:

一、设置前台服务。 代码如下:

    private String CHANNEL_ONE_ID = "TraceNotification_1001";
    private  NotificationCompat.Builder builder;
    private NotificationManager manager;
    /**
     * 开启通知栏
     */
    private void initNotification() {
        //获取管理器
        manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        //创建notification
       builder = new NotificationCompat.Builder(getApplicationContext(), CHANNEL_ONE_ID)
                .setSmallIcon(R.mipmap.loctionicon) // 设置状态栏内的小图标
                .setContentTitle("记录轨迹")
                .setContentText("当前位置:") // 设置内容
                .setWhen(System.currentTimeMillis())// 设置该通知发生的时间
                .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)// 锁屏显示全部通知
                .setCategory(Notification.CATEGORY_SERVICE)//设置类别
                .setPriority(NotificationCompat.PRIORITY_MAX);// 优先级为:重要通知


        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            //安卓8.0以上系统要求通知设置Channel,否则会报错
            //IMPORTANCE_NONE 关闭通知
            //IMPORTANCE_MIN 开启通知,不会弹出,但没有提示音,状态栏中无显示
            //IMPORTANCE_LOW 开启通知,不会弹出,不发出提示音,状态栏中显示
            //IMPORTANCE_DEFAULT 开启通知,不会弹出,发出提示音,状态栏中显示
            //IMPORTANCE_HIGH 开启通知,会弹出,发出提示音,状态栏中显示
            NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ONE_ID, "服务常驻通知", NotificationManager.IMPORTANCE_LOW);
            notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);//锁屏显示全部通知
            manager.createNotificationChannel(notificationChannel);
            builder.setChannelId(CHANNEL_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jackiesky1206

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值