0

作为一名 Android 开发者,我是否负责处理用户快速重复按下按钮的情况?或者这是否被认为是用户滥用?从后端的数据角度来看,没有什么不好的事情发生。

我有一个按钮,当被选中时会进行服务器调用。一旦服务器响应,就会从返回的消息中生成一个活动(使用处理程序)。在某些情况下,如果用户反复按下按钮,重复的活动可能会开始堆叠,并可能导致糟糕的用户体验(即用户可能需要多次点击后退按钮才能返回到前一个屏幕)

编辑:我遗漏了一些细节。现在正在等待服务器响应时显示一个微调框对话框。这会拦截所有点击。问题在于,在某些情况下,从关闭微调器到开始新活动之间的时间足够长,用户可以进行更多点击。

现在我正在禁用按钮,但看起来有点像黑客,可能会有更好的解决方案。

4

4 回答 4

6

我是否负责处理用户快速重复按下按钮的情况?

通常是的。

或者这是否被认为是用户滥用?

用户的意见才是最重要的,用户可能不会认为这是对您的应用的“滥用”。

一旦服务器响应,就会从返回的消息中生成一个活动(使用处理程序)。一世

不要在这样的延迟后开始活动,特别是因为服务器可能永远不会响应。

在某些情况下,如果用户反复按下按钮,重复的活动可能会开始堆叠,并可能导致糟糕的用户体验(即用户可能需要多次点击后退按钮才能返回到前一个屏幕)

所以,换句话说,你的 UI 让用户感到沮丧。解决方案是编写更好的 UI。

于 2012-12-07T16:19:55.157 回答
5

当您开始执行需要很长时间的操作时,最好显示 a ProgressDialog,然后在任务完成后将其关闭。

private ProgressDialog mProgressDialog;

...

mProgressDialog = new ProgressDialog(context);
mProgressDialog.setIndeterminate(true);
mProgressDialog.setMessage("Loading...");
mProgressDialog.show();

...

mProgressDialog.dismiss();
于 2012-12-07T16:26:01.040 回答
1

btn.setEnabled(false)第一次按下后的简单解决方案。需要时重新启用。

至于你的问题:

作为一名 Android 开发者,我是否负责处理用户快速重复按下按钮的情况?

我会说不,我相信用户足够聪明,可以意识到如果他们滥用该应用程序,它可能无法按预期运行。尽管您显然可以使用自己的技术来缓解这个问题,但如果您愿意的话。

于 2012-12-07T16:17:48.790 回答
1

取决于你的意图是什么。您是否试图在整个运行过程中禁止单击它两次?或者你想禁止快速点击它。

myButton.setEnabled(false);在第一种情况下,只需在第一次单击后禁用按钮。

如果您想在一段时间内禁用它,请使用 if 和 else on OnClick。将此与等待功能相结合。

就像是:

public void Sleeper() {
  myButton.setEnabled(false);
  wait(time);
  myButton.setEnabled(true):
}
于 2012-12-07T16:28:52.373 回答