안드로이드 프로젝트에서 문제가 발생했습니다.안드로이드에서 블로킹을 방지하는 방법 (
나는 1 초마다 뭔가하고 싶다. 그러나 문제는 그 1 초 사이에 뭔가 다른 것이 있다는 것이다.
루프를 wait(1000)
루프로 만들려고했으나 문제는이 루프가 다른 모든 명령어를 차단한다는 것입니다.
해결 방법/해결책은 무엇입니까?
안드로이드 프로젝트에서 문제가 발생했습니다.안드로이드에서 블로킹을 방지하는 방법 (
나는 1 초마다 뭔가하고 싶다. 그러나 문제는 그 1 초 사이에 뭔가 다른 것이 있다는 것이다.
루프를 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();
}
};
android에서 async tasks을 사용할 수 있습니다.
감사합니다. 그림자에 대해 살펴 보겠습니다. '공공 무효 PrendrePhoto() { \t \t 문자열 : –
당신이 날이 abaut 자세한 내용을 적어주세요 수, 나는 내 코드의 일부이다 여기 :-) 안드로이드 핵 물질의 beginer에 오전, 귀하의 답변 주셔서 감사합니다 nom = "CameraPhoto"; \t \t double x; \t \t 카메라 = Camera.open(); \t \t capteurBdd = new CapteursBDD (null); \t \t while (true) { \t \t camera.takePicture (null, null, null); \t \t x = 10; \t \t ValeursCapteur capteur = 새로운 ValeursCapteur (nom, x, 0, 0); \t \t capteurBdd.insertValeursCapteur (capteur); \t \t Log.i (null, "GPS ="+ x); \t \t { \t \t 대기 (3000); \t \t} \t \t 캐치 (예외 : InterruptedException의 예) { \t \t} \t \t}}' –
내 편집을 참조하십시오. 'findViewById'의 경우 어떤 컨트롤이나 레이아웃을 사용할 수 있습니다. –
Tomislave, 정말 고마워요.하지만이 줄에는 문제가 있습니다 :'findViewById (R.id.mainView) .postDelayed (predrePhotoRunnable, 1000);' mainView 란 무엇입니까? 이 도와 주셔서 너무 감사 –