我已经坚持了好几天了。我有一个活动。我实施了
@Override
public void onBackPressed() {
Log.e("TEST", "Pressed back");
mAdapter.back();
}
布局是一个视图寻呼机,我扩展了一个 FragmentStatePagerAdapter 来管理它。我有标签,我想管理它们的历史,所以我实现了历史逻辑,如https://stackoverflow.com/a/17832632/3821037中所述。它工作正常,但由于某种原因,在我单击更改选项卡并在我第一次单击时点击 android 后退按钮后未注册 - 它不会调用活动 OnBackPressed。第二个电话工作正常。有谁知道第一个活动去哪里?我应该说我永远不会离开同样的活动。我还可以看到记录的第一个事件
05-20 12:44:17.952: I/ViewRootImpl(22749): ViewRoot's KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_BACK, scanCode=0, metaState=0, flags=0x48, repeatCount=0, eventTime=8406029, downTime=8406029, deviceId=-1, source=0x101 } to com.android.internal.policy.impl.PhoneWindow$DecorView{428bba20 V.E..... R....... 0,0-1080,1776}
但是我不确定哪个对象得到它(我还尝试在片段和 viewPager 的视图上添加一个侦听器,以及活动的根视图的所有父级 - 没有任何东西接收它)。
谢谢你。