Entonces, después de terminar mi actividad de escáner con
btn_take_photo.setOnClickListener(new FloatingActionButton.OnClickListener() { @Override public void onClick(View view) { String carde = cardnumberbox.getText().toString().trim(); if (carde.matches("")) { Toast.makeText(getApplicationContext(), getString(R.string.Skan_Udfyld_Kort_Nummer), Toast.LENGTH_SHORT).show(); cardnumberbox.requestFocus(); return; } Intent i = new Intent(ScanActivity.this, CameraActivity.class); i.putExtra("EXTRA_SESSION_ID", carde); startActivity(i); } });para ir a la actividad de mi cámara para poder tomar algunas fotos y volver con
public void btn_aprove2(View view) { Intent i = new Intent(CameraActivity.this, ScanActivity.class); String counts = count.getText().toString().trim(); i.putExtra("EXTRA_SESSION_IDs", counts); String carde = cardnumberbox2.getText().toString().trim(); i.putExtra("EXTRA_SESSION_ID", carde); startActivity(i); finish();a la actividad del escáner de nuevo. Mi escáner no funciona correctamente, pero si luego presiono el botón Atrás, vuelve a la actividad del escáner nuevamente en lugar de a mi menú, por lo que parece que la actividad del escáner se ejecuta dos veces y solo 1 de ellos funciona, pero es aquí donde me confunde.
porque si no presiono el botón btn_aprove2 y solo uso el botón Atrás, obtengo exactamente el mismo problema, pero aquí la actividad de mi escáner no se ejecuta dos veces, ya que cuando presiono el botón Atrás, simplemente me lleva de vuelta al menú.
al eliminar la orientación de mi pantalla del manifiesto (para que pueda girarla), mi escáner ahora funciona, pero solo si primero giro hacia el paisaje y luego lo vuelvo a girar hacia el retrato
y veo en el registro que solo está llamando a oncreate cuando gira y solo al reanudar y pausar en el botón (startactivity/finnish)
Estoy totalmente perdido sobre cómo hacer que esto funcione.
en github con demostración de api y documentación en la wiki y con esas clases que se están utilizando
Si solo salta a la actividad de la cámara para obtener algunos datos, le recomiendo que comience la actividad para obtener un resultado (startActivityForResult) sin terminar la actividad del escáner. Esto le daría una pila posterior de trabajo adecuada (usando el botón Atrás para volver de la cámara al escáner).
Además de eso, ¿por qué estás usando i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ? Estás comenzando una nueva actividad y terminando la anterior. No veo por qué esta bandera es realmente necesaria. ¿Cuál es su android:launchMode en su manifiesto y está seguro de que sabe lo que está haciendo FLAG_ACTIVITY_NEW_TASK y es lo que quiere?
De todos modos, por lo que nos dijo, parece que su ejemplo realmente debería utilizar startActivityForResult() sin llamar a finish() :