我的Android项目中存在小问题。
我想每1秒钟做一些事情,但问题是我在那些1秒之间还有别的事情要做。
我尝试在while (true)
内部设置wait(1000)
循环,但问题是此循环会阻止所有其他指令。
对此有什么解决方法/解决方案?
答案 0 :(得分:2)
我会考虑一个线程场景。如果您正在使用UI更新,则可以使用postDelayed
,以便可以使用Runable更新UI。您也可以在Runable中调用Runable。
View.postDelayed(new Runnable() {
public void run() {
// do work
}
}, 1000);
编辑:根据您的评论,这就是您可以重复调用您的函数的方法。
public void PrendrePhoto() {
String nom = "CameraPhoto";
double x;
camera = Camera.open();
capteurBdd = new CapteursBDD(null);
while (true) {
camera.takePicture(null, null, null);
x = 10;
ValeursCapteur capteur = new ValeursCapteur(nom, x, 0, 0);
capteurBdd.insertValeursCapteur(capteur);
Log.i(null, "GPS = " + x);
try {
findViewById(R.id.mainView).postDelayed(predrePhotoRunnable, 1000);
} catch (InterruptedException ex) {
}
}
}
private Runnable predrePhotoRunnable = new Runnable() {
public void run() {
PrendrePhoto();
}
};
答案 1 :(得分:0)
您可以在android中使用async tasks。