Сбой службы с нулевым указателем на onCreate
Я хотел проверять фактическое время каждые 5 минут в службе и отключить или включить звук телефона в зависимости от времени. Ранее я пытался использовать while (true) с thread.sleep (300000) в конце, но он всегда зависал с ANR, поэтому я пытался использовать задачу таймера, но теперь он падает сразу после строкиAudioManager audioManager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
с исключением NullPointerException
package de.nathan.android.droidschool;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.os.IBinder;
import java.io.File;
import java.util.GregorianCalendar;
import java.util.Timer;
import java.util.TimerTask;
/**
* Created by nathan on 29.08.13.
*/
public class MuteService extends Service
{
Timer myTimer = new Timer();
MyTimerTask myTimerTask= new MyTimerTask();
AudioManager audioManager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
public void onCreate()
{
super.onCreate();
}
public int onStartCommand(Intent intent, int i1, int i2)
{
super.onStartCommand(intent, i1, i2);
myTimer.scheduleAtFixedRate(myTimerTask, 0, 600000); //(timertask,delay,period)
return START_STICKY;
}
public MuteService()
{
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
private class MyTimerTask extends TimerTask {
@Override
public void run() {
GregorianCalendar cal = new GregorianCalendar();
String tag = null;
switch (cal.get(GregorianCalendar.DAY_OF_WEEK))
{
case GregorianCalendar.MONDAY:
tag = "Montag";
break;
case GregorianCalendar.TUESDAY:
tag = "Dienstag";
break;
case GregorianCalendar.WEDNESDAY:
tag = "Mittwoch";
break;
case GregorianCalendar.THURSDAY:
tag = "Donnerstag";
break;
case GregorianCalendar.FRIDAY:
tag = "Freitag";
break;
}
int i = 0;
while (i