Я хочу определить, нажата ли нажата кнопка дома, мне не нужно менять ее поведение. как я могу это реализовать? я попытался это решение, но я получил исключениеобнаружение кнопки дома нажата
Android - Error - IllegalArgumentException: Window type can not be changed after the window is added
источник
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME){
mPager.stopAutoScroll();
Log.d("Pager", "Autoscroll stopped");
}
return false;
}
Решение в [продублируйте] тема не работает на андроид л на устройстве
Правильное решение
public class MyApplication extends Application {
public static boolean isActivityVisible() {
return activityVisible;
}
public static void activityResumed() {
activityVisible = true;
}
public static void activityPaused() {
activityVisible = false;
}
private static boolean activityVisible;
}
Зарегистрируйте свой класс приложения в AndroidManifest.xml:
<application
android:name="your.app.package.MyApplication"
android:icon="@drawable/icon"
android:label="@string/app_name" >
Добавить OnPause и onResume каждой деятельности в рамках проекта (вы можете создать общий предок для вашей деятельности, если вы хотите, но если ваша деятельность уже простиралась от MapActivity/ListActivity и т.д., вам все еще нужно написать следующее вручную):
@Override
protected void onResume() {
super.onResume();
mPager.startAutoScroll();
MyApplication.activityResumed();
}
@Override
protected void onPause() {
super.onPause();
MyApplication.activityPaused();
mPager.stopAutoScroll();
}
нет, получено исключение –