我们正在使用相同的应用程序进行测试。
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)
| 归档时间: |
|
| 查看次数: |
324 次 |
| 最近记录: |