冻结Android应用程序

时间:2012-09-25 19:46:41

标签: java android

我想为要冻结的应用程序中的屏幕创建一个计时器。让我们说两秒钟。我不希望屏幕对屏幕上的任何按钮点击做出反应。这是“皱眉头”吗?还是有另一种方法来解决这个问题。

我的申请:

enter image description here

用户点击:

enter image description here

我想暂停所有内容两秒钟(所以我的其他按钮听众不会关闭)然后我希望听众回去,因为我会将按钮从绿色变回灰色。

1 个答案:

答案 0 :(得分:0)

在点击处理程序中,您可以更改颜色并删除所有按钮的onclick侦听器,并启动一个后台线程来执行您的计时。当后台线程已经睡了2分钟后,您可以为所有按钮添加onclick侦听器。这样您就不会创建完全没有响应的UI,但是您可以实现禁用按钮的效果。

public class myListener implements OnClickListener() {
  private boolean ignoreClicks = false;

  public void setIgnoreClicks( boolean b ) { 
    this.ignoreClicks = b;
  }

  @Override
  public void onClick( View v ) {
    if ( !ignoreClicks ) {
      // use v to get the button, then change the color
      ignoreClicks = true;
      // start a new AsyncTask and give it the listener and the view
      // in doInBackground sleep for 2 seconds
      // in onPostExecute change the color of the button back to normal
      //     (you have a reference to the button because you gave the view to the AsyncTask)
      //   and set ignoreClicks to false in the listener
    }
  }
}

创建此侦听器的一个实例,并将其用于每个按钮。