0

我目前正在开发一个 Android Webview 应用程序。我正在使用以下代码退出我的应用程序。问题是通过使用此代码,我无法再返回上一页,所以这还不是我的想法。

目标:

我只想在按下主页上的后退按钮时显示以下 toast 消息。当用户在与主页不同的页面上时,按下后退按钮应该只是返回到上一页。

我怎么能做那样的事情?

private Boolean exit = false;
@Override
    public void onBackPressed() {
        if (exit)
            this.finish();
        else {
            Toast.makeText(this, "Press again to close the app.",
                    Toast.LENGTH_SHORT).show();
            exit = true;
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    exit = false;
                }
            }, 3 * 1000);

        }

    }
4

2 回答 2

0

你必须有某种变量来知道你在哪个页面。

private Boolean exit = false;
@Override
public void onBackPressed() {
     if(page != "homepage"){
          super.onBackPressed(); // Calls the Overriden Method 
     }
    else
    {
    if (exit)
        this.finish();
    else {
        Toast.makeText(this, "Press again to close the app.",
                Toast.LENGTH_SHORT).show();
        exit = true;
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                exit = false;
            }
        }, 3 * 1000);

    }
  }

}
于 2014-11-30T18:38:54.337 回答
0

如果您正在使用活动,请尝试在 AndroidManifest.XML 中声明它们的父活动。
它还将在 actionBar 上创建 backButton。

  <activity
        android:name=".MyActivity"
        android:label="@string/app_name"
        android:parentActivityName="com.projectname.homepage">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.projectname.homepage" />
    </activity>

在您的主页中声明此代码 onBackPressed。

@Override
public void onBackPressed() {
    if (back_pressed + 2000 > System.currentTimeMillis()) {
        Intent intent = new Intent();
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        super.onBackPressed();
    } else
    Toast.makeText(this, "Press once again to exit!",
            Toast.LENGTH_SHORT).show();
    back_pressed = System.currentTimeMillis();
}
于 2014-11-30T18:55:48.717 回答