后退按钮会破坏Crosswalk Android中的活动

时间:2015-03-02 08:42:34

标签: android webview back

我们正在使用Crosswalk项目在我们的Android应用程序中实现Web视图。据我所知,Crosswalk将跟踪应用程序是否可以返回到网站上(getNavigationHistory()),如果用户位于root用户,则只需在用户按下后退按钮时暂停活动更多时间。

可以按原样运行的场景:

  1. 用户启动应用程序并查看索引
  2. 用户按链接转到另一页
  3. 用户转到另一个链接
  4. 用户按下手机上的后退按钮,看到他在步骤#2中看到的页面
  5. 用户再次按下后退按钮返回索引
  6. 用户再次按回来,现在暂停了应用程序
  7. 继续上一个场景但会破坏应用程序:

    1. 用户再次启动应用程序(恢复它)
    2. 用户按后退按钮
    3. 活动应暂停,但会被销毁。
    4. 所以我想知道这是标准行为还是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应该注册),后退按钮也会破坏活动。

0 个答案:

没有答案