2

我设置了一个按钮来重置活动。当我按得太快太多次时,它不仅会使活动排队(就像我按回时,还有另一个活动实例)并且可能崩溃。我能做些什么来防止这些事情发生吗?

我在 onClick 方法中使用的代码:

Intent intent = getIntent();
overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(intent);
4

3 回答 3

0

尝试这个

btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                                btn.setEnabled(false);
                Intent intent = getIntent();
                                startActivity(intent);
                                finish();

            }
        });
于 2013-08-07T11:48:25.403 回答
0

您可以使用try/catch来确保不会发生任何崩溃,也可以使用recreate()方法重新启动您的活动:

   try{
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               button.setEnabled(false);

                recreate();

               button.setEnabled(true);
            }
        });
    }catch (Exception e ){
        Log.e("TAG",e.getMessage());
    }
于 2017-04-23T05:26:50.967 回答
0

或者只是简单地使用

btn.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v) {
        btn.setEnabled(false);
        //your code here
        btn.setEnabled(true);
    }
}
于 2017-04-23T05:14:30.000 回答