使用堆栈 - 覆盖onBackPressed

时间:2014-08-21 13:29:56

标签: java android android-activity stack

我在我的Android应用程序中有这个代码,我试图覆盖onbackPressed函数,所以如果要显示堆栈中的项目,否则当前活动将被关闭,但不知何故我的堆栈不会删除顶部的项目虽然我正在做pop()。这可能是什么问题?

这是我的代码:

@Override
    public void onBackPressed() {
        Log.v("--", backStack.size() + "BS");
        if (backStack.size() == 0) {
            finish();
        } else {
            position = backStack.pop();
            Log.v("--", "BAck " + position);
            webView.clearView();
            String html = head + mustReads.get(position).getBody() + footer;
            backStack.push(position);
            Log.v("--", "LITLIB html: " + html);

            webView.loadDataWithBaseURL("", html, mimeType, encoding, "");
            getActionBar().setTitle(mustReads.get(position).getTitle());
        }

    }

1 个答案:

答案 0 :(得分:0)

因为你在pop()之后立即调用push(),所以永远不会调用你的else子句。所以你的backStack大小总是大于0.