相关疑难解决方法(0)

Android计时器?如何?

有人可以给出一个每秒钟更新文本字段的简单示例吗?

我想做一个飞球,需要每秒计算/更新球坐标,这就是我需要某种计时器的原因.

我从这里得不到任何东西.

android timer

312
推荐指数
9
解决办法
47万
查看次数

是否连续暂停/停止和启动/恢复Java TimerTask?

我有一个关于Java TimerTask的简单问题.如何根据特定条件暂停/恢复两个TimerTask任务?例如,我有两个在彼此之间运行的计时器.当在第一计时器的任务内满足某个条件时,第一计时器停止并启动第二计时器,并且当在第二计时器的任务内满足某个条件时发生相同的事情.下面的课程显示了我的意思:

public class TimerTest {
    Timer timer1;
    Timer timer2;
    volatile boolean a = false;

    public TimerTest() {
        timer1 = new Timer();
        timer2 = new Timer();     
    }

    public void runStart() {
        timer1.scheduleAtFixedRate(new Task1(), 0, 1000);
    }

    class Task1 extends TimerTask {
        public void run() {
            System.out.println("Checking a");
            a = SomeClass.getSomeStaticValue();

            if (a) {
                // Pause/stop timer1, start/resume timer2 for 5 seconds
                timer2.schedule(new Task2(), 5000);
            }
        }
    }

    class Task2 extends TimerTask{
        public void run() {
            System.out.println("Checking a");
            a = SomeClass.getSomeStaticValue(); …
Run Code Online (Sandbox Code Playgroud)

java multithreading android asynchronous timer

19
推荐指数
4
解决办法
9万
查看次数

如何在一定次数后停止计时器

尝试使用a Timer运行4次,每次间隔10秒.

我试过用循环来阻止它,但它一直在崩溃.尝试过使用schedule()带有三个参数,但我不知道在哪里实现一个计数器变量.有任何想法吗?

final Handler handler = new Handler(); 
Timer timer2 = new Timer(); 

TimerTask testing = new TimerTask() {
    public void run() { 
        handler.post(new Runnable() {
            public void run() {
                Toast.makeText(MainActivity.this, "test",
                    Toast.LENGTH_SHORT).show();

            }
        });
    }
}; 

int DELAY = 10000;
for (int i = 0; i != 2 ;i++) {
    timer2.schedule(testing, DELAY);
    timer2.cancel();
    timer2.purge();
}
Run Code Online (Sandbox Code Playgroud)

android timer timertask

8
推荐指数
1
解决办法
4478
查看次数

Java,无限循环的替代?

我正在制作一个通过阵列显示细胞生长的程序.当我按下开始按钮时,我已经得到了它,数组在一段时间(真实){}循环中每10秒更新一次.问题是我希望能够通过按下暂停按钮来停止循环,但在循环中,它不会让我使用任何控件.我需要在orer中使用除了无限循环之外的其他东西来刷新帧.

我是一个新手,但我现在在java类.所以我掌握了一些语言.

java loops replace interruptions

6
推荐指数
2
解决办法
8548
查看次数

使用"notify()"和"wait()"代替"suspend()"和"resume()"来控制一个线程

我正在尝试学习如何在java中暂停和恢复一个线程.我使用的Appletimplements Runnable有2个按钮"开始"和"停止".

public void init(){
  th = new Thread(this);
  th.start();

  btn_increment = new Button("Start");
  btn_increment.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent ev){
      th.notify();
    }
  });
  add(btn_increment);

  btn_decrement = new Button("Stop");
  btn_decrement.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent ev){
      try{
        th.wait();
      } catch(InterruptedException e) {
        e.printStackTrace();
      }
    }
  });

  add(btn_decrement);                               
}
Run Code Online (Sandbox Code Playgroud)

线程的run方法:

public void run(){
  while(true){
    repaint();
    try{
      Thread.sleep(20);
    } catch(InterruptedException e) {
      e.printStackTrace();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,每当我尝试暂停或恢复该线程时,都会抛出异常:

Exception in thread "AWT-EventQueue-1" java.lang.IllegalMonitorStateException

笔记:

如果我使用弃用的方法suspend(),前面的代码运行完美resume(),但文档指出使用notify()而 …

java applet multithreading synchronization synchronized

3
推荐指数
1
解决办法
7962
查看次数

我不能启动计时器2次

我正在用Java制作一个计时器,我需要帮助.主类增加了一个挥杆计时器.我有一个jFrame,有2个面板,1个有jLabel,另一个有3个按钮,"开始","停止"和"重置".当我点击开始然后一切正常,当我停止然后重置.但当我再次点击start时,它会抛出这个异常:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Timer already                                       cancelled.
at java.util.Timer.sched(Unknown Source)
at java.util.Timer.schedule(Unknown Source)
at org.stopwatch.Stopwatch.start(Stopwatch.java:71)
at org.stopwatch.Stopwatch$1.actionPerformed(Stopwatch.java:48)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at …
Run Code Online (Sandbox Code Playgroud)

java swing timer

3
推荐指数
1
解决办法
5312
查看次数