Arhn - архитектура программирования

Активность закрывается автоматически, когда она возвращается из фона

В моем приложении моя активность автоматически закрывается, когда я возвращаюсь из фона, и всегда показывает предыдущую активность. Пример: я запускаю приложение с действием A>, затем перехожу к действию B>, затем к действию C, теперь я помещаю свое приложение в фоновый режим и захожу, а затем возвращаюсь на передний план, действие C автоматически приближается, оно показывает действие B. пожалуйста, помогите мне, это большой проект Я работаю над существующим кодом. Я не знаю, какое свойство было установлено там. Я проверил методы onPause() и onResume() везде в приложении, там нет ничего, что могло бы закрыть активность.

public class EnterOtpActivity extends ChoosePhotoBaseActivity {
private ActivityEnterOtpBinding mBinding;
private EnterOtpModel model;
private String name;
private String prefix;
private String phone;
private String password;
private int spinnerPos;
private UserApi.FacebookLoginDetails fbLoginDetails = null;

@NonNull
@Override
protected Map<ImageView, Transformation<Bitmap>> getImageViewsMap() {
    return null;
}

@Override
protected void handleLoadedFile(@NonNull File imageTempFile) {
    imageCropped(Uri.fromFile(imageTempFile));
}

public void imageCropped(@NonNull Uri croppedImageUri) {
    model.mEditAvatarUri = croppedImageUri;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mBinding = DataBindingUtil.setContentView(this, R.layout.activity_enter_otp);
    mBinding.setModel(model = new EnterOtpModel(this, mBinding));
    Bundle bundle = getIntent().getExtras();
    if (bundle != null) {
        if (bundle.containsKey(BundleKeyUtils.REGISTRATION)) {
            UserDetailsForOTPVo userDetailsForOTPVo = (UserDetailsForOTPVo) bundle.getSerializable(BundleKeyUtils.REGISTRATION);
            name = userDetailsForOTPVo.getName();
            prefix = userDetailsForOTPVo.getPrefix();
            phone = userDetailsForOTPVo.getContactNumber();
            password = userDetailsForOTPVo.getPassword();
            spinnerPos = userDetailsForOTPVo.getSpinnerPosition();
            model.setContactNumber(prefix, phone);
        } else if (bundle.containsKey(BundleKeyUtils.FB_REGISTRATION)) {
            fbLoginDetails = (UserApi.FacebookLoginDetails) bundle.getSerializable(BundleKeyUtils.FB_REGISTRATION);
            prefix = fbLoginDetails.getPhone_country_code();
            phone = fbLoginDetails.getPhone();
        }
    }
    mBinding.editOtp.setFilters(new InputFilter[]{new InputFilter.LengthFilter(4)});
    model.setTimer();
    setContinueAction();
    otpTextWatcher();
    setOnOtpRequest();
    File f = new File(getApplicationContext().getCacheDir(), "temp");
    Uri imageUri = Uri.fromFile(f);
    model.mEditAvatarUri = imageUri;

    mBinding.textContinue.setEnabled(false);
}

private void setOnOtpRequest() {
    mBinding.textOTp.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showOTPDialog();
        }
    });
}

private void setContinueAction() {
    mBinding.textContinue.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mBinding.textContinue.setVisibility(View.INVISIBLE);
            mBinding.progressContinue.setVisibility(View.VISIBLE);
            mBinding.imgvArrow.setVisibility(View.INVISIBLE);
            if (fbLoginDetails == null) {
                model.onContinueAction(prefix, phone, password, name, mBinding.editOtp.getText().toString(), spinnerPos);
            }else {
                //TODO FB web call
                fbLoginDetails.setOTP_code(mBinding.editOtp.getText().toString());
                model.onFbLoginAction(fbLoginDetails, () -> {
                    mBinding.textContinue.setVisibility(View.VISIBLE);
                    mBinding.progressContinue.setVisibility(View.INVISIBLE);});
            }
        }
    });
}


public void otpTextWatcher() {
    mBinding.editOtp.addTextChangedListener(new SimpleTextWatcher() {
        @Override
        public void onTextChanged(@NonNull String newText) {
            super.onTextChanged(newText);
            if (newText.length() == 4) {
                mBinding.textContinue.setEnabled(true);
                mBinding.textContinue.setBackgroundResource(R.drawable.button_background_selector);
            }else {
                mBinding.textContinue.setEnabled(false);
                mBinding.textContinue.setBackgroundResource(R.drawable.bg_rounded_button_light_orange);
            }
        }
    });
}

public void showOTPDialog() {
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(EnterOtpActivity.this,
            R.style.DialogDark));
    String meddleD = getResources().getString(R.string.dialog_msg_sms_middle);
    alertDialogBuilder.setMessage(getResources().getString(R.string.dialog_msg_sms_will_be) +" "+ prefix + phone +meddleD+getResources().getString(R.string.dialog_is_this_number_correct));
    alertDialogBuilder.setCancelable(false);
    alertDialogBuilder.setPositiveButton(R.string.fragment_contacts_invite_sms_ok, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
            mBinding.textOTp.setVisibility(View.INVISIBLE);
            mBinding.progressLogIn.setVisibility(View.VISIBLE);
            mBinding.editOtp.setText("");
            model.reSendOtpRequest();
        }
    });
    alertDialogBuilder.setNegativeButton(R.string.edit, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

            dialog.dismiss();
            finish();
        }
    });
    alertDialogBuilder.show();
}

//disable back button

@Override
public void onBackPressed() {
    // do nothing
}

@Override
protected void onPause() {
    super.onPause();
}

@Override
protected void onResume() {
    super.onResume();
}

}


  • Пожалуйста, добавьте несколько кодов 03.08.2016
  • это большой проект, я думаю, что код не поможет. 03.08.2016
  • дайте нам информацию о logcat и добавьте код, который поможет вам 03.08.2016
  • @Pradeep Пожалуйста, укажите часть кода в действии C, которая, по вашему мнению, имеет потенциальные незавершенные концы. 03.08.2016
  • @Debojyoti Я отредактировал свой код, посмотрите, теперь это активность C. 03.08.2016
  • @PradeepDeshmukh Можно с уверенностью сказать, что функция finish () вызывается при возвращении из фона. Таким образом, активность C останавливается. 03.08.2016
  • @Debojyoti, но в методе onResume() нет функции finish(). 03.08.2016
  • @PradeepDeshmukh Поскольку активность C останавливается и начинается предыдущая активность, может быть, вызывается функция. Можете ли вы прокомментировать метод finish () и посмотреть? 03.08.2016
  • @Debojyoti В действии c я не вызывал функцию finish (). Я думаю, что это может произойти из-за addflags(), таких как четкая вершина и четкая задача. не так ли? 03.08.2016
  • @PradeepDeshmukh См. эту ссылку stackoverflow.com/questions/15964411/ какой-то одноэлементный класс собирается сборщиком мусора 03.08.2016
  • @Debojyoti в моем журнале cat приложение не выдает никаких ошибок и все такое. 03.08.2016
  • @Debojyoti У меня проблема, посмотри мой ответ. 04.08.2016
  • @PradeepDeshmukh взял тебя на всю ночь :) в любом случае поздравляю 04.08.2016
  • @Debojyoti, да! 4 часа :D и спасибо! 04.08.2016

Ответы:


1

Я нашел виновника в своем коде, на самом деле в предыдущей реализации они добавили noHostory="true" в Manifests.xml для этого действия, поэтому оно закрывалось.

04.08.2016
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..