Extraño problema con startActivity causando que mi escáner no funcione correctamente
Así que, 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 mi actividad de cámara para que pueda tomar algunas fotos y volver con
- Cómo quitar la parte decimal de un número de flotador que contiene .0 en java
- Biblioteca FTP de Android
- Permitir que sólo mis aplicaciones Android ejecuten api de punto final en java
- ¿Se garantiza que init estática NO se ejecute si no se accede a la clase?
- Un ligero retraso al hacer clic en un botón
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 escáneractividad de nuevo. Mi escáner no funciona correctamente, pero si presiono el botón de retroceso vuelve a la escáneractividad de nuevo en lugar de mi menú por lo que parece que la escáneractividad se ejecuta dos veces y sólo uno de ellos son funcionales, pero es aquí donde me confunde
Porque si no presionas el botón btn_aprove2
y solo utilizas el botón de retroceso en su lugar obtienes exactamente el mismo problema pero aquí mi escáneractividad no se ejecuta dos veces como cuando presiono el botón de regreso solo me lleva de regreso al menú
Un video del tema
Mediante la eliminación de mi orientación de la pantalla del manifiesto (para que pueda rotar) mi escáner ahora funcionan, pero sólo si primero giro a paisaje y girar de nuevo a potrait
Y veo en el registro es que sólo está llamando al oncreate al girar y sólo en reanudar y pausa en el botón (startactivity / finlandés)
Estoy totalmente perdido en cómo conseguir esto para trabajar.
En github con demo api y documentación en el wiki y con las clases thoose que se están utilizando
- En Eclipse, ¿es posible encontrar todos los métodos en el proyecto que toman cierto tipo de parámetro?
- ¿El hilo muere al terminar la actividad?
- Cómo extender la clase android con delphi xe5
- Informe Leakcanary de pérdida de memoria usando Otto
- Mapa personalizado de Google Maps Engine en Android Maps v2?
- No se encontró ningún identificador de recurso para el atributo 'layout_behavior' en el paquete
- ¿Cómo diseñar botones?
- Tesseract de OCR para Android: uso de datos de objetos Pixa para mostrar cuadros delimitadores
Si saltas a la actividad Cámara para obtener algunos datos, te recomiendo que inicies la actividad para un resultado (startActivityForResult) sin terminar la actividad del escáner. Esto le daría una buena pila trasera de trabajo (utilizando el botón de retroceso para volver de la cámara al escáner).
Además de eso, ¿por qué está utilizando i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
? Estás comenzando una nueva actividad y terminando la antigua. No veo por qué realmente se necesita esta bandera. ¿Cuál es tu android:launchMode
en tu manifiesto y estás seguro de saber lo que FLAG_ACTIVITY_NEW_TASK
está haciendo y es lo que quieres?
Anyways de lo que nos dijo que parece que su ejemplo realmente debe utilizar startActivityForResult()
sin llamar finish()
:
- Presione el botón de menú en alguna actividad
- Iniciar cámara y hacer algo
- Presione algún botón para iniciar Scanner
- Escanee algo y termine el escáner con el resultado (o cancele el escáner haciendo clic de nuevo)
- Recuperar el resultado del escáner en la cámara y hacer algo con él o continuar con el flujo de trabajo anterior cuando el escáner se canceló
- Una vez que haya terminado con su flujo de trabajo, termine la cámara para que termine en su actividad donde comenzó la cámara
- Deshabilitar notificaciones en un URI de ContentProvider
- Cómo obtener HTML5 video URI en HTML5VFullScreen $ SurfaceVideoView en Android 4.0?