Код не будет работать в новом классе - PullRequest
0 голосов
/ 31 августа 2010

код в основном классе работает идеально, но мне нужен другой поток, но там код не будет работать

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

1 Ответ

1 голос
/ 01 сентября 2010

MediaPlayer.create требует Context в качестве первого параметра. Activity - это Context, Runnable - нет.

Аналогично, getSystemService - это функция, определенная в Context, поэтому вы должны быть Context, чтобы вызывать ее таким образом.

Возможно, вы захотите прочитать о AsyncTask , предпочтительном способе работы в фоновом потоке в Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...