私のAndroidプロジェクトでは問題があります。Androidでブロック中(真)にする方法
私は1秒ごとに何かしたいと思いますが、問題は1秒間に何か他のことがあるということです。
ループをwait(1000)
と内部で作成しようとしましたが、このループが他のすべての命令をブロックするという問題があります。
このための回避策/解決策は何ですか?
私のAndroidプロジェクトでは問題があります。Androidでブロック中(真)にする方法
私は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();
}
};
は、あなたが私にこのabaut詳細を記入してくださいすることができ、私は私のコードの一部であり、ここで :-)アンドロイド研究開発を中beginer午前、あなたの答えをありがとう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; \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} \t \tキャッチ(InterruptedExceptionあるのEX){ \t \t} \t \t}} ' –
私の編集を参照してください。 'findViewById'では、任意のコントロールやレイアウトを使用できます。 –
Tomislaveさんありがとうございますが、私はこの行に問題があります: 'findViewById(R.id.mainView).postDelayed(predrePhotoRunnable、1000);' mainViewとは何ですか? は、あなたの助けのためにどうもありがとうございます –