Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 冻结android应用程序_Java_Android - Fatal编程技术网

Java 冻结android应用程序

Java 冻结android应用程序,java,android,Java,Android,我想为要冻结的应用程序中的屏幕创建一个计时器。比如说两秒钟。我不希望屏幕对任何屏幕上的按钮点击做出反应。这是“皱眉”吗?或者有没有其他方法来解决这个问题 我的申请: 用户点击: 然后我想将所有内容暂停两秒钟(以便我的其他按钮侦听器不会关闭),然后我想让侦听器返回,因为我会将按钮从绿色变为灰色。在单击处理程序中,您可以更改颜色,删除所有按钮的onclick侦听器,并启动一个执行计时的背景线程。当后台线程睡眠2分钟后,您可以为所有按钮添加onclick侦听器。这样,您就不会创建一个完全没有响应的

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

我的申请:

用户点击:


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

在单击处理程序中,您可以更改颜色,删除所有按钮的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
    }
  }
}

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

在您说出为什么要这样做之前,没有人可以说您是否不赞成此侦听器。一旦我们知道您真正想要实现的目标,我们或许可以推荐其他解决方案。长话短说,用户点击一个按钮,然后我更改按钮的颜色(表示对或错)当我指出正确或错误时,我想禁用所有其他按钮,直到我更改回颜色。是否有一种简单的方法可以删除所有按钮的onclick侦听器?因为假设我有50个按钮,有很多侦听器需要停止,然后重新启动。仍然没有足够的上下文。创建一个按钮对象数组n迭代该数组并调用setOnClickListener(null);您可以有一个onclick侦听器实现,它可以查看已单击的视图,更改该视图的颜色,然后,虽然它可能会收到单击,但在超时发生之前,它不会对这些单击执行任何操作。然后,您可以为每个按钮使用该侦听器的单个实例,因此第一次单击将导致事件,所有其他人会通过侦听器方法的no-op路径,直到超时发生并且侦听器再次处于活动状态。因此,我可以编写一段代码来忽略所有单击?编辑问题并添加伪代码。