有时当我的应用程序运行速度较慢时,用户可以多次单击启动意图的按钮。我听说这可能是 ICS 中修复的错误 - 是真的吗?或者我是否必须为我开始的每一个意图管理启动模式。谢谢你的帮助。
问问题
114 次
2 回答
0
添加一些简单的去抖动:
class MyActivity extends Activity {
private boolean wasButtonPressed = false;
void onResume() {
super onResume();
wasButtonPressed = false;
}
void onClick( View view ) {
if( !wasButtonPressed ) {
wasButtonPressed = true;
startActivity( ....
}
}
于 2013-01-03T15:15:46.417 回答
0
当您执行长时间操作时,您必须禁用该按钮,并在执行操作以响应用户点击后使其启用。您正在对 onClick 方法执行长时间操作,操作系统将堆叠您的所有用户点击,witch 将被异步转发,这不是错误。您可以显示进度对话框以通知用户长时间操作。一个快速的解决方法是禁用该按钮,直到上一次点击完全被消耗。
@Override
public void onClick(View aView) {
int id = aView.getId();
switch (id) {
case R.id.yourButton:
aView.setEnabled(false);
// add your own implementation
aView.setEnabled(true);
break;
default:
break;
}
}
于 2013-01-03T15:16:50.253 回答