Вы можете отключить всех слушателей, когда захотите.
Другой подход, который я использовал, - это использование прозрачной линейной или относительной компоновки, которая должна быть накачана, чтобы охватить весь экран в течение определенного периода времени.
public void coveredScreen(){
if(point_total>0){
parent = (RelativeLayout) findViewById(R.id.main_view); //whatever your layout is
loadedView = getLayoutInflater().inflate(R.layout.covered_screen, null); //the layout that contains something that fills parent.
parent.addView(loadedView);
updateHandler = new Handler();
updateHandler.postDelayed(coveredScreen, 2000); //opens layout for 2000 ms
// turns off listeners...
button1.setClickable(false);
button2.setClickable(false);
}
Runnable loadingScreen = new Runnable() {
public void run() {
// this turns on listeners and removes the inflated view
parent.removeView(loadedView);
button1.setClickable(true);
button2.setClickable(true);
// Call this method again every 3 seconds if desired or as long as wanted by uncommenting this handler
//updateHandler.postDelayed(this, 3000);
}
};
Итак ... чтобы установить это так долго, как вы хотите, звоните каждый раз, когда хотите заблокировать какие-либо действия пользователя в Activity.