service does not start properly
<p>I am trying to make a service and a notification for that. What I have is two buttons. clicking on start button starts should start service and stop should stop. But right now they are not working. I have a main class, service class and notification class. here are my code and logcat output.</p>

<p>My service class is here</p>

<blockquote>
  <p>package com.zafar.batterynotify;</p>
</blockquote>

<pre><code>import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class BatteryService extends Service {
Notify notification = new Notify();

@Override
public IBinder onBind(Intent arg0) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    notification.initNotification(this);
    Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
    return START_STICKY;
}

public void onDestroy() {
    super.onDestroy();
    notification.cancelNotification(this);
    Toast.makeText(this, "Service Stopped", Toast.LENGTH_LONG).show();
}

}
</code></pre>

<p>Notification class</p>

<blockquote>
  <p>package com.zafar.batterynotify;</p>
</blockquote>

<pre><code>import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;

public class Notify {
private static final int NOTIFICATION_ID = 1;

public void initNotification(Context actContext) {
    String ns = actContext.NOTIFICATION_SERVICE;
    NotificationManager mNotificationManager = (NotificationManager) actContext.getSystemService(ns);
    int icon = R.drawable.ic_launcher;
    CharSequence tickerText = "Service Started";
    long when = System.currentTimeMillis();
    Notification notification = new Notification(icon, tickerText, when);
    notification.flags = Notification.FLAG_ONGOING_EVENT;
    //Context context = actContext.getApplicationContext();
    Context context = MyApplication.getContext();
    CharSequence contentTitle = "Ongoing service";
    CharSequence contentText = "This is service is ongoing";
    Intent notificationIntent = new Intent(context, BatteryNotify.class);
    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
    mNotificationManager.notify(NOTIFICATION_ID, notification);
}

public void cancelNotification(Context actContext) {
    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager mNotificationManager = (NotificationManager) actContext.getSystemService(ns);
    mNotificationManager.cancel(NOTIFICATION_ID);
}
}
</code></pre>

<p>My logcat output</p>

<blockquote>
  <p></p>
</blockquote>

<pre><code>05-12 12:35:35.480: D/AndroidRuntime(27598): Shutting down VM
05-12 12:35:35.480: W/dalvikvm(27598): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
05-12 12:35:35.490: E/AndroidRuntime(27598): FATAL EXCEPTION: main
05-12 12:35:35.490: E/AndroidRuntime(27598): java.lang.RuntimeException: Unable to start service com.zafar.batterynotify.BatteryService@40526a48 with Intent { cmp=com.zafar.batterynotify/.BatteryService }: java.lang.NullPointerException
05-12 12:35:35.490: E/AndroidRuntime(27598):    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2056)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at android.app.ActivityThread.access$2800(ActivityThread.java:117)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:998)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at android.os.Looper.loop(Looper.java:130)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at android.app.ActivityThread.main(ActivityThread.java:3691)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at java.lang.reflect.Method.invokeNative(Native Method)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at java.lang.reflect.Method.invoke(Method.java:507)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at dalvik.system.NativeStart.main(Native Method)
05-12 12:35:35.490: E/AndroidRuntime(27598): Caused by: java.lang.NullPointerException
05-12 12:35:35.490: E/AndroidRuntime(27598):    at android.content.ComponentName.&lt;init&gt;(ComponentName.java:75)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at android.content.Intent.&lt;init&gt;(Intent.java:2859)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at com.zafar.batterynotify.Notify.initNotification(Notify.java:24)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at com.zafar.batterynotify.BatteryService.onStartCommand(BatteryService.java:20)
05-12 12:35:35.490: E/AndroidRuntime(27598):    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2043)
05-12 12:35:35.490: E/AndroidRuntime(27598):    ... 10 more
05-12 12:35:56.465: D/AndroidRuntime(27706): Shutting down VM
05-12 12:35:56.465: W/dalvikvm(27706): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
05-12 12:35:56.470: E/AndroidRuntime(27706): FATAL EXCEPTION: main
05-12 12:35:56.470: E/AndroidRuntime(27706): java.lang.RuntimeException: Unable to start service com.zafar.batterynotify.BatteryService@4051f2f8 with Intent { cmp=com.zafar.batterynotify/.BatteryService }: java.lang.NullPointerException
05-12 12:35:56.470: E/AndroidRuntime(27706):    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2056)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at android.app.ActivityThread.access$2800(ActivityThread.java:117)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:998)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at android.os.Looper.loop(Looper.java:130)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at android.app.ActivityThread.main(ActivityThread.java:3691)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at java.lang.reflect.Method.invokeNative(Native Method)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at java.lang.reflect.Method.invoke(Method.java:507)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at dalvik.system.NativeStart.main(Native Method)
05-12 12:35:56.470: E/AndroidRuntime(27706): Caused by: java.lang.NullPointerException
05-12 12:35:56.470: E/AndroidRuntime(27706):    at android.content.ComponentName.&lt;init&gt;(ComponentName.java:75)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at android.content.Intent.&lt;init&gt;(Intent.java:2859)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at com.zafar.batterynotify.Notify.initNotification(Notify.java:24)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at com.zafar.batterynotify.BatteryService.onStartCommand(BatteryService.java:20)
05-12 12:35:56.470: E/AndroidRuntime(27706):    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2043)
05-12 12:35:56.470: E/AndroidRuntime(27706):    ... 10 more
</code></pre>
