如何在Android中阻止(true)阻止
问题描述:
我的Android项目中有一个小问题。如何在Android中阻止(true)阻止
我想每1秒做一次,但问题是我在这些1秒之间还有别的事要做。
我试图做一个while (true)
循环与wait(1000)
里面,但问题是,此循环阻止所有其他指令。
这将是一个解决方法/解决方案是什么?
答
我会考虑一个线程场景。如果您正在使用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();
}
};
谢谢您的回答,您可以请给我abaut更多细节,我在android系统的深化发展一个beginer :-) 这里是我的代码的一部分: '公共无效PrendrePhoto(){ \t \t字符串nom =“CameraPhoto”; \t \t double x; \t \t camera = Camera.open(); \t \t capteurBdd = new CapteursBDD(null); \t \t while(true){ \t \t camera.takePicture(null,null,null); \t \t x = 10; ValeursCapteur capteur = new ValeursCapteur(nom,x,0,0); \t \t capteurBdd.insertValeursCapteur(capteur); \t \t Log.i(null,“GPS =”+ x); (3000); \t \t尝试{ \t \t等待(3000); \t \t} \t \t赶上(InterruptedException的前){ \t \t} \t \t}}' – 2011-12-25 14:05:20
见我的编辑。对于'findViewById',你可以使用任何控件或布局。 – 2011-12-25 14:12:16
非常感谢Tomislave,但是我对这行有一个问题:'findViewById(R.id.mainView).postDelayed(predrePhotoRunnable,1000);' 什么是mainView? 非常感谢你的帮助 – 2011-12-25 14:16:09