我希望在我的 Android 汽车应用程序中及时显示信息。
我使用 GridTemplate,我想在其中更新项目的文本。为了进行测试,我有一个简单的计数器,带有一个计时器(10ms),递归地调用一个函数,它将新值写入一个变量,该变量又在构建时由网格使用。一切正常,但我无法让屏幕更新速度超过一秒。为了重绘屏幕,我使用 invalidate() 重新调用 onGetTemplate。是否有另一种可能性来显示实时数据或加快屏幕的重新加载速度?
这里有一些简单的代码:
public class MyScreen extends Screen {
private int run = 0;
public MyScreen(CarContext carContext) {
super(carContext);
}
@NonNull
@Override
public Template onGetTemplate() {
looping();
Row row = new Row.Builder().setTitle("Count:").addText(run+"").build();
return new PaneTemplate.Builder(new Pane.Builder().addRow(row).build()).setTitle("Wasup").build();
}
private void looping() {
Timer timer = new Timer();
new Timer().schedule(new TimerTask() {
@Override
public void run() {
looping();
}
}, 100);
run++;
Log.d("Test",run+"");
invalidate();
if(run >=1000){run = 0;}
}
}
作为开发人员,您无法提高模板的刷新率。此外,为了限制驾驶员分心,一般不建议频繁更新(请参阅https://developer.android.com/training/cars/Android%20for%20Cars%20App%20Library%20design%20guidelines.pdf第8页) )