So I have a service that contains a Timer. The service is meant to run even when the app in the background and is supposed to pull the user to the app when the timer executes the method(from another activity). The service is triggered on and off by a toggle button. Currently my R.id reference to my spinner keeps throwing a NullPointerException that i don't know how to fix. Can someone please help me out?
The Method the Timer is running:
 public String TemperatureCatch()
        {
/*this line throws the error */            Spinner reeferchoice = (Spinner)findViewById(R.id.optionselecti);
                String reeferChoicei = reeferchoice.getSelectedItem().toString();
                if (reeferChoicei.equals("Yes")) {
                    final ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_NOTIFICATION, 500);
                    tg.startTone(ToneGenerator.TONE_CDMA_ABBR_ALERT);
                    AlertDialog.Builder alert = new AlertDialog.Builder(this);
                    alert.setTitle("Temperature");
                    alert.setMessage("Input Temperature in F° (-20 to 65) ");
                    final EditText input = new EditText(this);
                    input.setInputType(InputType.TYPE_CLASS_PHONE);
                    alert.setView(input);
                    alert.setPositiveButton("Check-In", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            temperaturei = input.getText().toString();
                            Toast.makeText(getBaseContext(), "Updated", Toast.LENGTH_SHORT).show();
                            Updater(temperaturei);
                        }
                    });
                    alert.show();
                } else if (reeferChoicei.equals("No")) {
                    temperaturei = "DRY";
                    Updater(temperaturei);
                }
            return temperaturei;
        }
My service code:
import android.app.IntentService;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import java.util.Timer;
import java.util.TimerTask;
public class MyService extends Service {
    Locator locator;
    Timer myTimer;
    @Override
    public void onCreate() {
        locator = new Locator();
        myTimer = new Timer();
    }
    private class MyTimerTask extends TimerTask
    {
        @Override
        public void run() {
            Handler handler = new Handler(Looper.getMainLooper());
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    locator.TemperatureCatch();
                }
            }, 1000);
        }
    }
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        MyTimerTask myTimerTask = new MyTimerTask();
            myTimer.scheduleAtFixedRate(myTimerTask, 0, 15000);
        return START_STICKY;
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        myTimer.cancel();
    }
}
the button:
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if (isChecked)
        {
 startService(new Intent(this, MyService.class));
            Toast.makeText(this,"Check-In will be done every 15 seconds",Toast.LENGTH_SHORT).show();
        }
        else
        {
stopService(new Intent(this, MyService.class));
            Toast.makeText(this,"Manual Check-In enabled",Toast.LENGTH_SHORT).show();
        }
    }
the stack trace:
  Process: com.example.adrian.trucktracker, PID: 9617
    java.lang.NullPointerException
            at android.app.Activity.findViewById(Activity.java:1952)
            at com.example.adrian.trucktracker.Locator.TemperatureCatch(Locator.java:192)
            at com.example.adrian.trucktracker.MyService$MyTimerTask$1.run(MyService.java:32)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:157)
            at android.app.ActivityThread.main(ActivityThread.java:5872)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:852)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:668)
            at dalvik.system.NativeStart.main(Native Method)