我目前正在开发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);
}
}
答案 0 :(得分: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);
}
}
}
答案 1 :(得分: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();
}