4***@qq.com
4***@qq.com
  • 发布:2020-12-01 16:29
  • 更新:2020-12-02 11:43
  • 阅读:869

app后台运行问题

分类:Native.js

想实现简单计步功能 app打开运行着没有问题 ,切换到后台后后大概2分钟后就不再运行了日志也不再打印

function stepCount(){
var Context = plus.android.importClass("android.content.Context");
var SensorManager = plus.android.importClass("android.hardware.SensorManager");
var Sensor = plus.android.importClass("android.hardware.Sensor");
var mContext = plus.android.runtimeMainActivity();
var mSensorManager = mContext.getSystemService(Context.SENSOR_SERVICE); //获取系统计步器

            let sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);    
            var countSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);    
            var mStepCounter;  
            var listener = plus.android.implements('android.hardware.SensorEventListener',{  
                onSensorChanged:function(sensorEvent){   
                    if (sensorEvent.plusGetAttribute("sensor").getType() == Sensor.TYPE_STEP_DETECTOR) {  
                        if (sensorEvent.plusGetAttribute("values")[0] == 1) {  
                            console.log("当前步数"+window.util.getStorage('stepCount'+new Date().format("YYYY-MM-dd")))  
                        }  
                    } else if (sensorEvent.plusGetAttribute("sensor").getType()== Sensor.TYPE_STEP_COUNTER) {  
                        mStepCounter =  sensorEvent.plusGetAttribute("values")[0];  
                            //console.log("当前步数总计:"+sensorEvent.plusGetAttribute("values"));   
                    }  
                    // console.log("传感器类型:"+sensorEvent.plusGetAttribute("sensor").getType());    
                    // console.log("当前步数总计:"+sensorEvent.plusGetAttribute("values"));    
                }  
            })  

            mSensorManager.registerListener(listener, mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR),  
                    SensorManager.SENSOR_DELAY_NORMAL);  
            mSensorManager.registerListener(listener, mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER),  
                    SensorManager.SENSOR_DELAY_NORMAL);  
        }  
        var g_wakelock = null;    
        //允许程序后台运行  
        var intervalcount =0;  
        function wakeLock() {    
            setInterval(function(){  
                // alert("后台运行中"+intervalcount++)  
                console.log("后台运行中"+intervalcount++)  
            },60000)  
            //Android     
            var main = plus.android.runtimeMainActivity();    
            var Context = plus.android.importClass("android.content.Context");    
            var PowerManager = plus.android.importClass("android.os.PowerManager");    
            var pm = main.getSystemService(Context.POWER_SERVICE);    
            g_wakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ANY_NAME");    
            g_wakelock.acquire();    
            // alert("wakeLock")  
        }  
2020-12-01 16:29 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com

做不到后台运行保活的,就算加入厂家白名单也撑不了多久

DCMarvel

DCMarvel

后台什么的就别想了,太TM难了.各厂家需要各种调教

4***@qq.com

4***@qq.com (作者)

关键我把手机设置了好多 ,应用上加锁定,自启动权限给了、锁屏后清理内存关了、应用智能省电关了 还是不行...

4***@qq.com

4***@qq.com (作者)

我测试了下 2分钟后上述代码就不运行了 但是解锁手机后看app还没被杀 打开app后代码又继续可以运行了 这个是什么问题 是监听器SensorEventListener不起作用了吗

该问题目前已经被锁定, 无法添加新回复