Android D/DecorView: semSetRoundedCorners: 5 无限日志

JAE*_*LEE 5 android kotlin

我们正在使用相同的应用程序进行测试。

Galaxy S9 为 D/DecorView: semSetRoundedCorners: 5 输出一次。

Galaxy S20 是 log D/DecorView: semSetRoundedCorners: 5 无限期输出。

我认为发生这种情况是因为屏幕比例不适合每个设备。

我想知道原因或者解决办法。请帮我。

小智 0

我没有使用科特林。但我在我的应用程序中使用了java。我还不断地得到日志输出。无限日志显示“ D/DecorView: semSetRoundedCorners: 5 ”的原因是传感器事件侦听器内更新文本视图。我仔细地检查了代码的一部分。最后,我发现当我更新侦听器中的文本视图时,它会记录该消息。检查您是否正在更新侦听器中的任何 UI 组件或类似另一个必须使用runOnUIThread() 的线程,这是我正在使用的传感器的侦听器代码

        sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
        sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        sensorManager.registerListener(new SensorEventListener() {
            @Override
            public void onSensorChanged(SensorEvent event) {
                float[] values = event.values;
                int x = (int)values[0];
                int y = (int)values[1];
                int z = (int)values[2];
                if(outputStream != null) {
                    if (x <= 2 && x >= -2) {
                        carActions.setParkingMode();
                    }

                    if (x < -2) {
                        if(y < -3) {
                            carActions.turnLeft();
                        }else if(y > 3){
                            carActions.turnRight();
                        }else{
                            carActions.goForward();
                        }
                    }

                    if (x > 2) {
                        if(y < -3) {
                            carActions.turnLeft();
                        }else if(y > 3){
                            carActions.turnRight();
                        }else{
                            carActions.goBackward();
                        }
                    }
                }

                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {


// as you can see below I have commented text view updating out. 
// It helped me to solve the continuous log output



//                        textView.setText(Arrays.toString(new int[]{x, y, z}));
                    }
                });
            }

            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {

            }
        }, sensor, SensorManager.SENSOR_DELAY_FASTEST);
Run Code Online (Sandbox Code Playgroud)