Java类无法正常工作

时间:2014-01-30 01:01:55

标签: java android class timertask

我希望此处显示的代码始终运行:

class secondClass extends TimerTask {

    MediaPlayer mp;

    public void onCreate(Context context) {
        mp = MediaPlayer.create(context, R.raw.flyinghome);
    }

    public void run() {
        float x = (float) Math.random();
        float y = (float) Math.random();
        mp.setVolume(x, y);
    }

    public static void main(String[] args) {  
        secondClass task = new secondClass();  
        Timer timer = new Timer();          
        timer.scheduleAtFixedRate(task, 0, 2000);           
    }  
}

如果MainActivity类扩展了Activity并实现了OnCLickListener,我怎么能让这个TimerTask与MainActivity类同时运行。

2 个答案:

答案 0 :(得分:0)

您可以阅读here

  

每个计时器都有一个线程,顺序执行任务。

您可以使用其中一个schedulling函数安排任务在该线程内运行,例如:

Timer t = new Timer();

t.schedule(new secondClass(), delay);
//delay is the amount of time in milliseconds before execution.

因为您希望它一直运行,所以您可以考虑使用schedule(java.util.TimerTask, long, long)来调度任务,以便在特定延迟后重复执行固定延迟。

Timer t = new Timer();

t.schedule(new secondClass(),  delay,period);
//delay is the amount of time in milliseconds before execution.
//period    amount of time in milliseconds between subsequent executions.

建议:我会将类名更改为SecondClass,因为类名用作资本。

答案 1 :(得分:0)

您还可以考虑使用Android服务。

https://developer.android.com/reference/android/app/Service.html