【问题标题】:Detecting Back Button Clicks and Ignoring Extra Clicks检测返回按钮点击并忽略额外点击
【发布时间】:2012-09-06 20:53:53
【问题描述】:

在我的应用程序中,有时用户单击后退按钮,但没有响应,因此他们立即再次单击,而不是返回上一个屏幕,而是返回 2-3 个屏幕。有时完全退出应用程序。然而,这些点击都发生在只显示一个屏幕时!有什么方法可以拦截并忽略这些后续点击。也许观察它们的间距或它们出现的屏幕?其他人有这个问题吗?

我的猜测是什么都做不了,因为用户可以最终控制后退按钮,但为什么 Android 不忽略额外的点击,因为它们都发生在同一个页面上,甚至没有声明要切换??

【问题讨论】:

  • 这听起来像是你在掩盖一个更大的问题(即,为什么要永远响应退出请求?)。
  • 通常有一个 ListView 显示。它没有优化,因为我不确定何时准确处理此请求(返回请求)。你知道吗?
  • 顺便说一句,downvote/close 是怎么回事?不介意,但不明白。
  • 您的应用未能立即响应后退按钮按下(需要额外按下)是一个不好的信号。您是否在更适合单独线程的 UI 线程上执行长任务?

标签: android


【解决方案1】:

您可以使用下面的代码轻松地抓住后退按钮,但是您真的不应该花很长时间来响应。你的 UI 线程被阻止做某事,这根本上是错误的。

@Override
public void onBackPressed() {
  // do something on back.
  return;
}

【讨论】:

  • 如果你从后台堆栈弹出,你不需要释放资源。唯一需要做的就是关闭套接字和结束线程。如果您创建了临时文件,我想删除它们。这些事情都不应该像你说的那样永远完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-05
  • 2011-01-01
  • 2016-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多