2015-11-01 3 views
-1

Я хочу, чтобы моя основная деятельность показывалась каждый раз после нажатия главного экрана и открытия приложения снова.Принудительное действие для отображения при загрузке приложения

Моя раскладка:

Главный экран -> Страница меню -> подменю

Я хочу, чтобы иметь возможность использовать кнопку назад, чтобы перейти в подменю на странице меню. Однако, независимо от того, на какой странице я нахожусь при нажатии главного экрана, я хочу показать главный экран, когда приложение будет открыто. Я попробовал onFinish() в своем классе java для MenuPage. Это приводит к тому, что кнопка возврата закрывает приложение, потому что предыдущая активность была завершена. Я исследовал, как я могу определить, нажата ли кнопка дома, чтобы закончить эту деятельность, но, похоже, это не вариант. Кто-нибудь знает об этом?

+0

Сколько у вас мероприятий? – Tasos

+0

3. Основное действие, активность в меню, активность подменю – th3ramr0d

+0

Вы хотите, чтобы ваш основной экран по умолчанию был основным действием вашего приложения? –

ответ

0

Для управления обратными нажатиями вы можете в основном направлять каждое действие или фрагмент, чтобы идти туда, куда вы нажимаете назад, переопределяя событие проталкивания.

@Override 
public void onBackPressed() { 
    // TO DO 
} 

Для обработки обратного давления и состояния с помощью фрагментов рекомендуется управлять задним стеклом.

Providing Proper Back Navigation

Я также использовать пользовательские кнопки домой на мои приложения, когда я хочу, чтобы пользователь мог идти прямо назад к основному виду деятельности.

public void goHome() { 
    startActivity(new Intent(this, MainActivity.class)); 
} 

редактировать
это было частью моего первоначального ответа, но это не решение, что ОП спрашивал. Я оставил его здесь, если он помогает любым браузерам, которые также могут неверно истолковать вопрос и ищут что-то подобное.

Необходимо, чтобы ваше основное действие было активным средством для запуска приложения, а затем используйте BOOT_COMPLETED и DEFAULT. Это означает, что пользователю нужно будет выбрать параметр по умолчанию каждый раз, когда они нажимают домашний ключ, пока они либо не установят приложение, либо стандартный экран устройства по умолчанию, «всегда» будут по умолчанию.

<activity android:name=".Main"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.HOME" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
+0

Мне сложно сформулировать мою проблему. Я не хочу, чтобы кнопка дома возвращалась на главный экран. Кнопка «Главная» должна закрыть приложение, а затем при повторном открытии приложения я хочу вернуться прямо на главный экран вместо того, чтобы приостановить действие последнего действия. Поэтому первая часть вашего ответа - это не то, что я пытаюсь сделать. Однако onBackPressed решает его. Я просто назову финиш() для всех действий, а затем onBackPressed вспомнит предыдущее действие, которое было закончено. Теперь дом полностью закрывает активность, но я все еще могу использовать кнопку «Назад», чтобы вернуться к предыдущим действиям. – th3ramr0d

+0

ОК, рад, что я решил, я отредактирую свой ответ, чтобы поставить другую часть вниз. Пожалуйста, оставьте свой комментарий здесь, это поможет другим понять, что мы сделали. Спасибо за согласие. –

1

При запуске вторичной деятельности вы можете использовать флаг FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET. Более подробную информацию о флагах намерений вы можете найти здесь: link

Смежные вопросы