Mega Code Archive

 
Categories / Android / Core Class
 

Using NotificationManager

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 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:orientation="vertical" android:layout_width="fill_parent"   android:layout_height="fill_parent">   <TextView android:layout_width="fill_parent"     android:layout_height="wrap_content" android:text="@string/hello" />   <Button android:id="@+id/start_service" android:layout_width="fill_parent"     android:layout_height="wrap_content" android:text="Start Service" />   <Button android:id="@+id/stop_service" android:layout_width="fill_parent"     android:layout_height="wrap_content" android:text="Stop Service" />   <Button android:id="@+id/bind_service" android:layout_width="fill_parent"     android:layout_height="wrap_content" android:text="Bind Service" />   <Button android:id="@+id/unbind_service" android:layout_width="fill_parent"     android:layout_height="wrap_content" android:text="Unbind Service" /> </LinearLayout>