В моей основной деятельности у меня есть меню, и когда выбран пункт меню, создается Intent и начинается новое действие. Когда эта деятельность завершается, процесс должен вернуться к основному действию и всем его предыдущим состояниям в соответствии с ActivityLifeCycle.
Я замечаю, что когда он возвращается к основному действию, ничего не доступно и экран тускнеет. Я могу вернуться только к тому, что ожидаю, когда нажимаю функциональную клавишу меню.
Кто-нибудь испытал эту проблему раньше? Обратная связь будет оценена! Пример кода ниже:
@Override
protected void onResume(){
super.onResume();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.menu_settings:
return true;
case R.id.menu_decks:
Intent launchDecks = new Intent(this, stackDecks.class);
startActivity(launchDecks);
return true;
case R.id.menu_exit:
this.onDestroy();
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Код в первом сообщении фактически правильный (у меня что-то очень похожее). Существует большая вероятность того, что ошибка находится в файле menu.xml res, даже несмотря на то, что он раздувается без проблем. Убедитесь, что он полностью совместим в обоих местах и имеет те же элементы. Я, наконец, решил это после нескольких часов экспериментов.
Вы, похоже, путались с использованием супер.
Функция super.m() используется для вызова метода суперкласса.
Если вы наследуете метод без переопределения, то super.m() = this.m() См. Ваш super.onDestroy
Абсолютно бесполезно переопределять метод m() только для вызова super.m() См. Ваш onResume
Иногда бывает полезно вызвать метод суперкласса, он позволяет вам использовать этот код в подклассе. Например, здесь onCreateMenuOptions переопределяется, и ваш подкласс может извлечь выгоду из некоторого кода имитации для меню.
С уважением, Стефан