Core Class Android

package app.test;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Binder;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
class TestService extends Service {
  private static final String TAG = "TestService";
  private NotificationManager _nm;
  @Override
  public IBinder onBind(Intent i) {
    Log.e(TAG, "TestService.onBind");
    return null;
  }
  public class LocalBinder extends Binder {
    TestService getService() {
      return TestService.this;
    }
  }
  @Override
  public boolean onUnbind(Intent i) {
    Log.e(TAG, "TestService.onUnbind");
    return false;
  }
  @Override
  public void onRebind(Intent i) {
    Log.e(TAG, "TestService.onRebind");
  }
  @Override
  public void onCreate() {
    Log.e(TAG, "TestService.onCreate");
    _nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    showNotification();
  }
  @Override
  public void onStart(Intent intent, int startId) {
    Log.e(TAG, "TestService.onStart");
  }
  @Override
  public void onDestroy() {
    _nm.cancel(0);
    Log.e(TAG, "TestService.onDestroy");
  }
  private void showNotification() {
    Notification notification = new Notification(R.drawable.icon,
        "Service started", System.currentTimeMillis());
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
        new Intent(this, Test.class), 0);
    notification.setLatestEventInfo(this, "Test Service",
        "Service started", contentIntent);
    _nm.notify(0, notification);
  }
}
public class Test extends Activity {
  private boolean _isBound;
  private TestService _boundService;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    setTitle("Service Test");
    initButtons();
  }
  
    private ServiceConnection _connection = new ServiceConnection() {  
        public void onServiceConnected(ComponentName className, IBinder service) {           
            _boundService = ((TestService.LocalBinder)service).getService();  
              
            Toast.makeText(Test.this, "Service connected",  
                    Toast.LENGTH_SHORT).show();  
        }  
  
        public void onServiceDisconnected(ComponentName className) {  
            _boundService = null;  
            Toast.makeText(Test.this, "Service connected",  
                    Toast.LENGTH_SHORT).show();  
        }  
    };  
    
    private void initButtons() {  
        Button buttonStart = (Button) findViewById(R.id.start_service);  
        buttonStart.setOnClickListener(new OnClickListener() {  
            public void onClick(View arg0) {  
                startService();  
            }  
        });  
  
        Button buttonStop = (Button) findViewById(R.id.stop_service);  
        buttonStop.setOnClickListener(new OnClickListener() {  
            public void onClick(View arg0) {  
                stopService();  
            }  
        });  
  
        Button buttonBind = (Button) findViewById(R.id.bind_service);  
        buttonBind.setOnClickListener(new OnClickListener() {  
            public void onClick(View arg0) {  
                bindService();  
            }  
        });  
  
        Button buttonUnbind = (Button) findViewById(R.id.unbind_service);  
        buttonUnbind.setOnClickListener(new OnClickListener() {  
            public void onClick(View arg0) {  
                unbindService();  
            }  
        });  
    }  
  
    private void startService() {  
        Intent i = new Intent(this, TestService.class);  
        this.startService(i);  
    }  
    
    private void stopService() {  
        Intent i = new Intent(this, TestService.class);  
        this.stopService(i);  
    }  
  
    private void bindService() {  
        Intent i = new Intent(this, TestService.class);  
         bindService(i, _connection, Context.BIND_AUTO_CREATE);  
         _isBound = true;  
    }  
  
    private void unbindService() {  
        if (_isBound) {  
            unbindService(_connection);  
            _isBound = false;  
        }  
    }  
}
//main.xml

  android:orientation="vertical" android:layout_width="fill_parent"
  android:layout_height="fill_parent">
      android:layout_height="wrap_content" android:text="@string/hello" />
      android:layout_height="wrap_content" android:text="Start Service" />
      android:layout_height="wrap_content" android:text="Stop Service" />
      android:layout_height="wrap_content" android:text="Bind Service" />
      android:layout_height="wrap_content" android:text="Unbind Service" />