Функции onPause() и onResume() при проектировании главного экрана
Я создаю домашний экран, на котором я показываю список приложений в виде сетки. На 1-м экране моего дома есть некоторая анимация, и когда вы нажимаете на кнопку, отображается сетка. Итак, проблема в том, что; 1)). Я открыл приложение из gridview, оно открывается нормально, но когда я выхожу из этого приложения, кнопка BACK выводит меня на экран GridView.(Это нормально). Теперь, когда я нажимаю кнопку HOME, она выполняет ту же работу, что и кнопка BACKBUTTON.
Я слушаю эти бутоны, используя dispatchKeyEvent(KeyEvent event)
но это не работает с кнопкой домой.. Логически, я не должен работать, потому что это dispatchKeyEvent(KeyEvent event)
работает для моего приложения, а не для любого другого приложения..
Я нашел несколько других путей решения этой проблемы,
Когда я открываю другие приложения, функции onPause() и onStop() вызываются на моем домашнем экране, предположим, что я установил там флаг, но, сделав это Как я смогу узнать, что после выполнения своих действий в другом приложении пользователь нажимает HOME BUTTON или ЗАДНЯЯ КНОПКА.
2 ответа
dispatchKeyEvent(KeyEvent event)
не сможет поймать нажатие кнопки Home. если вы хотите захватить использование кнопки Home onUserLeaveHint()
, И чтобы захватить кнопку назад специально использовать onBackPressed()
,
Вы должны заявить, что ваша домашняя деятельность выглядит так, как показано ниже
<activity
android:name="com.android.launcher2.Launcher"
android:launchMode="singleTask"
android:clearTaskOnLaunch="true"
android:stateNotNeeded="true"
android:theme="@style/Theme"
android:windowSoftInputMode="stateUnspecified|adjustPan"
android:configChanges="locale">
<intent-filter>
<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.MONKEY"/>
</intent-filter>
</activity>
и объявить сеточную активность как нормальную деятельность в манифесте
Я надеюсь, что вы получили решение.