Странная проблема с намерением startActivity, которая заставляет мой сканер работать неправильно

Итак, после того, как я закончил свою работу с

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); } }); 

Чтобы перейти к моей работе с камерой, чтобы я мог сделать несколько снимков и вернуться с

  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(); 

К активности сканера снова. Мой сканер работает неправильно, но если я затем нажмем кнопку «Назад», он снова вернется к активности scanner вместо моего меню, так что похоже, что активность scanner работает дважды, и только 1 из них функциональны, но здесь, где это смущает меня

Потому что если не нажимать кнопку btn_aprove2 и просто использовать кнопку «Назад», я btn_aprove2 точно такую ​​же проблему, но здесь моя активность сканера не запускается дважды, так как когда я нажимаю кнопку «Назад», она просто возвращает меня обратно в меню

Видео о проблеме

Удалив ориентацию экрана из манифеста (так что я могу повернуть его), мой сканер теперь работает, но только если я сначала повернусь к пейзажу и поверну его обратно в кайт

И я вижу в журнале, что он только вызывает oncreate при вращении и только при возобновлении и паузе на кнопке (startactivity / finnish)

Я полностью потерял, как заставить это работать.

На github с api demo и документацией в вики и с использованием классов thoose, которые используются

Если вы просто перейдете к активности камеры, чтобы получить некоторые данные, я бы рекомендовал вам начать работу с результатом (startActivityForResult), не закончив вообще действие Scanner. Это даст вам правильный рабочий стоп (с помощью кнопки «Назад», чтобы вернуться с камеры на сканер).

Кроме того, почему вы используете i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ? Вы начинаете новую деятельность и заканчиваете старую. Я не понимаю, почему этот флаг действительно нужен. Какой у вас android:launchMode в манифесте, и вы уверены, что знаете, что делает FLAG_ACTIVITY_NEW_TASK , и это то, что вы хотите?

В любом случае, из того, что вы нам сказали, похоже, что ваш пример действительно должен использовать startActivityForResult() без вызова finish() :

  1. Нажмите кнопку меню на какой-либо операции
  2. Запустите камеру и сделайте что-нибудь
  3. Нажмите кнопку, чтобы запустить сканер
  4. Сканируйте что-нибудь и завершите сканирование с результатом (или отмените сканирование, щелкнув по нему)
  5. Получить результат сканера в камере и сделать что-то с ним или продолжить предыдущий рабочий процесс, когда сканер был отменен
  6. Как только вы закончите свой рабочий процесс, завершите камеру, чтобы вы оказались в своей деятельности, где вы запустили камеру
Intereting Posts
Почему центр внимания в моей сцене three.js остается в центре внимания камеры, но только в Chrome для Android? Передавать растровое изображение из одной активности в другую Android: Socket – java.net.SocketException: sendto failed: EPIPE (Broken pipe) Получить изображение профиля из facebook и установить изображение Как добавить значки в Предпочтение Загружать большие изображения в растровые изображения? Предложить инструмент для создания прототипов пользовательского интерфейса на Android – AppInventor, другой? Как показывать отметки для дискретного слайдера? Как исправить ошибку «Ошибка при синхронизации vcpu reg»? Ошибки сборки Gradle при интеграции DroidAR в проект студии Android Изменение значения R.String Programmatically Как монтировать файл android img под Linux? PhoneGap Disable Screen Rotate On Single Page? Android weakReference to Activity имеет значение null, пока выполняется действие. Android Back Arrow на панели инструментов (AppCompatActivity)