Problème d'accès à un singleton
Bonjour,
Je vous explique mon problème.
Je voudrais prendre capturer une photo pendant le streaming.
Donc dans la méthode "onPreviewFrame" je viens regarder si un flag est à "true" pour capturer la photo.
Et dans mon "Service" quand je reçois un message de mon webService, je met le flag à "true".
Voici ma classe singleton:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| public class CameraManager {
private static String TAG = "CameraManager";
private static CameraManager instance = null;
private boolean shouldTakePicture = false;
private String classA = null;
private CameraManager(String classA) {
this.classA = classA;
}
public static CameraManager getInstance(String classA) {
Log.d(TAG, "cameraManager - getInstance -" + classA);
if (CameraManager.instance == null) {
Log.d(TAG, "cameraManager - instance == null - " + classA);
synchronized(CameraManager.class) {
if (CameraManager.instance == null) {
CameraManager.instance = new CameraManager(classA);
}
}
}
return CameraManager.instance;
}
public synchronized boolean isShouldTakePicture() {
Log.d(TAG, "cameraManager - shouldTakePicture: " + shouldTakePicture + " - " + classA);
return shouldTakePicture;
}
public synchronized void setShouldTakePicture(boolean shouldTakePicture) {
this.shouldTakePicture = shouldTakePicture;
Log.e(TAG, "cameraManager - shouldTakePicture: " + shouldTakePicture + " - " + classA);
}
} |
J'ai mis volontairement beaucoup de logs.
Voici les logs:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
04-05 12:37:33.890: D/CameraManager(1549): cameraManager - getInstance -InfosSession
04-05 12:37:33.890: D/CameraManager(1549): cameraManager - instance == null - InfosSession
04-05 12:37:34.350: D/CameraManager(1549): cameraManager - getInstance -VideoCaptureAndroid
04-05 12:37:35.560: D/CameraManager(1549): cameraManager - shouldTakePicture: false - InfosSession
04-05 12:37:35.640: D/CameraManager(1549): cameraManager - shouldTakePicture: false - InfosSession
....
04-05 12:37:59.900: D/CameraManager(1549): cameraManager - shouldTakePicture: false - InfosSession
04-05 12:37:59.950: E/CameraManager(1529): cameraManager - shouldTakePicture: true - InfosSession
04-05 12:37:59.980: D/CameraManager(1549): cameraManager - shouldTakePicture: false - InfosSession
04-05 12:38:00.080: D/CameraManager(1549): cameraManager - shouldTakePicture: false - InfosSession
04-05 12:38:00.130: D/CameraManager(1549): cameraManager - shouldTakePicture: false - InfosSession
... |
Comme vous pouvez le constater, le flag est bien mis à "true" par mon "Service" mais la valeur récupérer dans la méthode "onPreviewFrame" est toujours à "false".
Je ne vois pas d'où vient mon problème.
Merci,
Drlord.