我的Android項目中有一個小問題。如何在Android中阻止(true)阻止
我想每1秒做一次,但問題是我在這些1秒之間還有別的事要做。
我試圖做一個while (true)
循環與wait(1000)
裏面,但問題是,此循環阻止所有其他指令。
這將是一個解決方法/解決方案是什麼?
我的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