Android 多次单击同一按钮前的多个实例';发射

Android 多次单击同一按钮前的多个实例';发射,android,android-4.0-ice-cream-sandwich,android-4.2-jelly-bean,Android,Android 4.0 Ice Cream Sandwich,Android 4.2 Jelly Bean,有时,当我的应用程序运行较慢时,用户可以多次单击启动意图的按钮。我听说这可能是一个在ICS中修复的错误-是真的吗?或者我必须为我启动的每个目的管理启动模式。 感谢您的帮助。添加一些简单的消除抖动: class MyActivity extends Activity { private boolean wasButtonPressed = false; void onResume() { super onResume(); wasButtonPressed = false

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

添加一些简单的消除抖动:

class MyActivity extends Activity {
    private boolean wasButtonPressed = false;

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

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

您必须在执行长操作时禁用该按钮,并在执行操作以响应用户单击后将其启用。您正在onClick方法上执行一个长操作,操作系统将堆叠您的所有用户单击,这些单击将被异步转发。这不是一个bug。您可以显示进度对话框,通知用户进行长时间操作。一个快速修复方法是禁用按钮,直到上一次单击完全消失

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

    }

谢谢你的回复。设置正确的启动模式似乎更像是搞乱按钮,而不是一件麻烦事。如果没有其他选项,我想android清单活动启动模式中的“单顶”就可以了。