多个实例在启动之前单击同一按钮的多次

时间:2013-01-03 14:49:32

标签: android android-4.0-ice-cream-sandwich android-4.2-jelly-bean

有时,当我的应用程序运行较慢时,用户可以单击多次启动意图的按钮。我听说这可能是ICS中修复的错误 - 是真的吗?或者我必须为我开始的每一个意图管理启动模式。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

添加一些简单的去抖动:

class MyActivity extends Activity {
    private boolean wasButtonPressed = false;

void onResume() {
    super onResume();
    wasButtonPressed = false;
}

void onClick( View view ) {
    if( !wasButtonPressed ) {
        wasButtonPressed = true;
        startActivity( ....
    }
 }

答案 1 :(得分:0)

您必须在执行长时间操作时禁用该按钮,并在对用户点击进行响应执行操作后启用该按钮。你正在对onClick方法执行一个长时间的操作,操作系统会叠加你所有的用户点击,这将是异步的,这不是一个错误。您可以显示“进度”对话框以通知用户长时间操作。快速修复将禁用按钮,直到完全消耗上一次点击。

@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;
        }

    }