我希望此处显示的代码始终运行:
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类同时运行。
答案 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