Отключение или включение Chrome приводит к сбою моего приложения Android в фоновом режиме при возобновлении

#android #onresume #background-foreground

#Android #onresume #фон-передний план

Вопрос:

шаги:

Открыл мое приложение для Android -> перевести его в фоновый режим

Открыл информацию о приложении Chrome -> нажмите отключить приложение -> перевести его в фоновый режим

Возобновленное мое приложение Android из background -> app теряет статические переменные и набор объектов, установленный до перехода в фоновый режим.

Обычные случаи -> возврат и возобновление работы нормально.

Было бы здорово, если бы кто-нибудь мог сообщить мне основную причину и решение.

Ниже приведен мой код для basefragment, который расширяется другими фрагментами, где данные теряются или поток пользовательского интерфейса прерывается.

  @Override
public final View onCreateView(LayoutInflater inflater,
                               ViewGroup container, Bundle savedInstanceState) {
    LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
    checkPresenter();
    mParentFragmentView = createEmbeddedDialogFragmentView(onCreateViewImpl(layoutInflater, container, savedInstanceState), layoutInflater, savedInstanceState);
    mParentFragmentView.setClickable(true);
    launchThread();
    return mParentFragmentView;
}

private void launchThread() {
    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            initFragment(mParentFragmentView);
            loadData();
        }
    };

    handler.sendEmptyMessageDelayed(0, 100);
}


protected abstract void loadData();

protected abstract void initFragment(View parentView);
  

Здесь функция loadData () (переопределяется дочерним фрагментом) возвращает некоторые данные, сохраненные в объекте, который потерян. Кроме того, я использую пользовательский класс logger (статический), настройки которого (динамически устанавливаемый объект (устанавливается при активности splash) также потеряны. В результате я получаю либо «нулевой указатель», либо «Исключение цели вызова». Это устаревший проект, который отлично работает в других сценариях. Пожалуйста, предложите.