作为Android开发人员,我是否负责处理用户快速重复地按下按钮的情况?或者这被认为是用户滥用?从后端的数据角度来看,没有什么不好的事情发生。
我有一个按钮,当被选中时会拨打服务器。一旦服务器响应,就会从返回的消息中生成一个活动(使用处理程序)。在某些情况下,如果用户反复按下按钮,重复活动可能会开始堆叠,并可能导致糟糕的用户体验(即用户可能需要多次点击后退按钮才能返回到前一个屏幕)
修改:
我遗漏了一些细节。现在,在等待服务器响应时显示 spinner 对话框。这会拦截所有点击。问题在于,在某些情况下,解雇微调器和启动新活动之间的时间足够长,以便用户进行更多点击。
现在我正在禁用按钮,但似乎有点黑客可能有更好的解决方案。
答案 0 :(得分:6)
我是否负责处理用户快速反复地按下按钮的情况?
通常是。
或者这被视为用户滥用?
用户的意见是重要的,用户可能不会认为这是对您应用的“滥用”。
服务器响应后,将从返回的消息中生成一个活动(使用处理程序)。我
请勿在此类延迟后启动活动,特别是因为服务器可能永远不会响应。
在某些情况下,如果用户反复按下按钮,重复的活动可能会开始堆叠,并可能导致糟糕的用户体验(即用户可能需要多次点击后退按钮才能返回上一个屏幕)
因此,换句话说,您的UI会让用户感到沮丧。解决方案是编写更好的UI。
答案 1 :(得分:5)
当您开始执行需要很长时间的操作时,最好显示ProgressDialog
,然后在任务完成时将其关闭。
private ProgressDialog mProgressDialog;
...
mProgressDialog = new ProgressDialog(context);
mProgressDialog.setIndeterminate(true);
mProgressDialog.setMessage("Loading...");
mProgressDialog.show();
...
mProgressDialog.dismiss();
答案 2 :(得分:1)
第一次按下后的简单解决方案btn.setEnabled(false)
。在需要时重新启用。
就你的问题而言:
作为Android开发人员,我负责处理这种情况 用户快速重复地按下按钮的位置?
我会说不,我相信用户足够聪明,如果他们滥用应用程序,它可能无法按预期执行。虽然您可以使用自己的技术来提升这个问题,但是如果您愿意的话。
答案 3 :(得分:1)
取决于你的意图。您是否试图在整个运行过程中禁止点击两次?或者你想不允许快速点击它。
在第一种情况下,只需在第一次点击后使用myButton.setEnabled(false);
停用按钮。
如果要在一段时间内禁用它,请在OnClick
上使用if和else。将此与等待功能相结合。
类似的东西:
public void Sleeper() {
myButton.setEnabled(false);
wait(time);
myButton.setEnabled(true):
}