Programación de aplicaciones de Android: Relleno de una matriz bidimensional en un hilo

Estoy tratando de calibrar un acelerómetro, pero no puedo obtener los 6 valores de muestra en 6 lecturas de aceleración diferentes requeridas para la calibración. PreliminaryW es un doble [6] [3] array hecho para llenar los valores de la muestra. Es 6 por 3 porque cada lectura de aceleración tiene un componente x, y, y az.

Estoy planeando probarlos pulsando un botón en las 6 lecturas de aceleración diferentes. Este botón hace que "calibre" sea verdad.

Por supuesto, en primer lugar hacer la "calibración" verdadera para iniciar este hilo.

Por alguna razón insondable, preliminary [i] = currentAcc parece estar llenándose de 0 a i con el mismo valor en vez de i. Me aseguré de que el currentAcc es diferente cada vez que presiono el botón "calibrar".

¿Qué está mal con mi código?

public synchronized void run() { Log.d(TAG, "+ in Calibrator thread +"); int i = -1; while (calibrating) { if (calibrate) { i = i + 1; calibrate = false; preliminaryW[i] = currentAcc; if (i == 5) { calibrating = false; } } } } 

No estoy muy familiarizado con el funcionamiento interno del acelerómetro, y es difícil decidir por qué no funciona sin ver más del código. Por ejemplo, ¿puede estar seguro de que sólo hay una instancia de Thread o está creando varias instancias?

¿Por qué esto necesita estar en un hilo?

Bucle como que no es una buena práctica tampoco, debe utilizar esperar / notificar si es absolutamente necesario un hilo. (más información en http://docs.oracle.com/javase/tutorial/essential/concurrency/guardmeth.html )

He redactado una clase que hace aproximadamente lo que quieres, pero no usa el subproceso. Puede crear un Calibrator y luego llamar a performCalibration () con cada nuevo valor:

 class Calibrator{ int count = 0; double[][] preliminaryW = new double[6][3]; public void performCalibration(double[] currentAcc){ preliminaryW[count] = currentAcc; count++; } } 

sin el hilo y "bucle de ocupado", puede ser capaz de omitir los indicadores para 'calibrar' y 'calibración' que sin duda ayudaría a depurar también.

¡Buena suerte!

  • Array de ImageButtons, asignar R.view.id desde una variable
  • Cómo obtener un valor aleatorio de una matriz de cadenas en android?
  • Cómo devolver una matriz de JNI a Java?
  • Exhibición de la secuencia de la Cadena de Android Signo de porcentaje
  • ¿Puedo convertir un Spannable en String en android para cargar un ExpandableListView?
  • Referencia dibujable de string-array en android
  • Android: Búsqueda de Arraylist grande
  • ClassCastException: java.lang.Object no se puede convertir en java.lang.String android
  • La mejor manera de ordenar los datos
  • ¿Cómo obtener eficientemente una matriz corta de recursos en Android?
  • Cómo analizar JSONArray en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.