【发布时间】:2013-05-06 19:12:58
【问题描述】:
我有一个使用 TabHost 的 Android 应用程序,根据所选选项卡调用其他活动的活动简称为 Main.java。我试图覆盖 Main.java 类中的后退按钮事件,但它似乎没有看到它。我正在尝试显示一个对话框窗口并与用户确认他们想要退出,如果他们点击确定让它完全关闭应用程序(不仅仅是发送到后台),如果他们点击取消,显然让它保持打开状态。关于为什么这似乎不起作用的任何建议?
@Override
public void onBackPressed()
{
AlertDialog.Builder alert = new AlertDialog.Builder(getApplicationContext());
alert.setMessage("Test dialog");
alert.show();
}
【问题讨论】:
-
Main.java 是 Activity 吗?
-
请不要像那样覆盖后退按钮。这不是 Android 上的标准行为,因此永远不应该实现。如果您决定实施它,您的用户将吃早餐。相反,如果您需要注销用户,请在应用关闭时将其注销。
-
Main 是具有 tabHost 的活动,但是当用户单击不同的选项卡时,它会在该活动的选项卡内容内启动一个新意图。因此,例如,如果他们单击 Status,它将启动 Status 活动,但在 Main.java 的 tabcontent 中。我很欣赏您的 Darwind 输入,但我需要一个确认对话框来验证用户是否要退出。
-
小心弄乱标准的 Android 应用程序行为......即覆盖后退按钮或任务管理,用户会感到困惑。在您的主要任务上放一个大的 LOGOUT 按钮,让它在一段时间后自动注销,等等,但不要更改 Back 按钮。
-
明白了,我会按照 Darwind 的建议在应用关闭时考虑让用户退出。
标签: android dialog android-tabhost back confirm