Android 背面的 onBackPressed() 不同
Android different between onBackPressed() on back
我有一个包含 2 个活动的应用程序,第一个从 http 加载数据并显示 header,第二个是特定 header.
的详细信息
在硬件上从第二个屏幕按下第一页不会重新加载,这很好。
在后面的操作栏上,页面正在重新加载。
我试过用这个:
case android.R.id.home:
this.onBackPressed();
break;
但它仍在重新加载..
尝试阅读所有这些主题:
Difference between actionBar back button and android back button
Differences between hardware back button and navigation bar back button
Android - Overriding ActionBar back and device back button
知道如何调试或修复它吗?
谢谢。
尝试使用:
http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyDown(int, android.view.KeyEvent) 而不是后退。
例如:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}
然后寻找 event.getKeyCode() == KeyEvent.KEYCODE_BACK
如果您想要的行为是按下后退按钮时没有任何动作,您应该覆盖 onBackPressed
并且不在其中放置任何动作,如下所示:
@Override
public void onBackPressed() {
/* do nothing */
}
您的解决方法不起作用的原因是您需要在此之后简单地 return
。当你只有 break
时,你的代码可能最终会调用
super.onOptionsItemSelected(item)
无论如何都会重新加载第一个 activity。
case android.R.id.home:
this.onBackPressed();
return;
然而,这不是推荐的方法,因为它打破了 Android 的导航设计模式,该模式概述了 UP 或 Ancestral 与 Back 或 Temporal 导航之间的区别。
The Up button is used to navigate within an app based on the hierarchical relationships between screens. The system Back button is used to navigate, in reverse chronological order, through the history of screens the user has recently worked with.
有关此的更多信息,请访问 http://developer.android.com/design/patterns/navigation.html
我遇到了同样的问题。就我而言,受影响的东西很烂->
如果您在 activity 中使用 导航栏后退按钮 返回,您的 activity 将调用 onNewIntent 方法。
不同于 硬件后退按钮.
我有一个包含 2 个活动的应用程序,第一个从 http 加载数据并显示 header,第二个是特定 header.
的详细信息
在硬件上从第二个屏幕按下第一页不会重新加载,这很好。
在后面的操作栏上,页面正在重新加载。
我试过用这个:
case android.R.id.home:
this.onBackPressed();
break;
但它仍在重新加载..
尝试阅读所有这些主题:
Difference between actionBar back button and android back button
Differences between hardware back button and navigation bar back button
Android - Overriding ActionBar back and device back button
知道如何调试或修复它吗?
谢谢。
尝试使用:
http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyDown(int, android.view.KeyEvent) 而不是后退。
例如:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}
然后寻找 event.getKeyCode() == KeyEvent.KEYCODE_BACK
如果您想要的行为是按下后退按钮时没有任何动作,您应该覆盖 onBackPressed
并且不在其中放置任何动作,如下所示:
@Override
public void onBackPressed() {
/* do nothing */
}
您的解决方法不起作用的原因是您需要在此之后简单地 return
。当你只有 break
时,你的代码可能最终会调用
super.onOptionsItemSelected(item)
无论如何都会重新加载第一个 activity。
case android.R.id.home:
this.onBackPressed();
return;
然而,这不是推荐的方法,因为它打破了 Android 的导航设计模式,该模式概述了 UP 或 Ancestral 与 Back 或 Temporal 导航之间的区别。
The Up button is used to navigate within an app based on the hierarchical relationships between screens. The system Back button is used to navigate, in reverse chronological order, through the history of screens the user has recently worked with.
有关此的更多信息,请访问 http://developer.android.com/design/patterns/navigation.html
我遇到了同样的问题。就我而言,受影响的东西很烂-> 如果您在 activity 中使用 导航栏后退按钮 返回,您的 activity 将调用 onNewIntent 方法。 不同于 硬件后退按钮.