我们正在使用Crosswalk项目在我们的Android应用程序中实现Web视图。据我所知,Crosswalk将跟踪应用程序是否可以返回到网站上(getNavigationHistory()),如果用户位于root用户,则只需在用户按下后退按钮时暂停活动更多时间。
可以按原样运行的场景:
继续上一个场景但会破坏应用程序:
所以我想知道这是标准行为还是Crosswalk中的错误?
我希望每次用户按下后退按钮时该应用都会暂停。
我试图覆盖标准的后退行为,但这仍然会在第二次按下时摧毁活动:
@Override
public void onBackPressed() {
DebugFunctions.showToast(mThis, "onBackPressed");
DebugFunctions.showLog(LOG_TAG, "onBackPressed");
DebugFunctions.showLog(LOG_TAG, "mXWalkView: " + String.valueOf(mXWalkView != null) + ", canGoBack: " + String.valueOf(mXWalkView.getNavigationHistory().canGoBack()));
if (mXWalkView != null && mXWalkView.getNavigationHistory().canGoBack()) {
DebugFunctions.showLog(LOG_TAG, "First");
mXWalkView.getNavigationHistory().navigate(XWalkNavigationHistory.Direction.BACKWARD, 1);
} else {
DebugFunctions.showLog(LOG_TAG, "Second");
moveTaskToBack(true);
}
}
另一个观察结果是,即使我在第二次启动应用程序时按下了一个链接(Crosswalk应该注册),后退按钮也会破坏活动。