#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) также потеряны. В результате я получаю либо «нулевой указатель», либо «Исключение цели вызова». Это устаревший проект, который отлично работает в других сценариях. Пожалуйста, предложите.