主类中的代码有效,但我需要一个其他线程,但代码无法正常工作
public class Alarm implements Runnable {
@Override
public void run() {
MediaPlayer mp = new MediaPlayer().create(this, R.raw.alarm);
mp.start();
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
long milliseconds = 1000;
v.vibrate(milliseconds);
}
}
错误:
The method create(Context, int) in the type MediaPlayer is not applicable for the arguments (Alarm, int)
和
The method getSystemService(String) is undefined for the type Alarm
答案 0 :(得分:1)
MediaPlayer.create
需要Context
作为第一个参数。 Activity
是Context
,Runnable
不是。
同样,getSystemService
是Context
中定义的函数,因此您必须是Context
才能像这样调用它。
您可能希望阅读AsyncTask,这是在Android后台线程中执行操作的首选方法。