Skip to main content

Android - Notifications - 2

Start Services from Notification


widget.xml

 <?xml version="1.0" encoding="UTF-8"?>  
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
   android:layout_width="fill_parent"  
   android:layout_height="fill_parent"  
   android:gravity="center"  
   android:orientation="horizontal" >  
   <TextView  
     android:id="@+id/textView1"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:gravity="center"  
     android:text="DJ notification"  
     android:textAppearance="?android:attr/textAppearanceMedium" />  
   <Button  
     android:id="@+id/button1"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:text="Start Service" />  
 </LinearLayout>  

Notification code:


 RemoteViews remoteViews = new RemoteViews(getPackageName(),  
                     R.layout.widget);  
           NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(  
                     this).setSmallIcon(R.drawable.ic_launcher).setContent(  
                     remoteViews);  
           // Creates an explicit intent for an Activity in your app  
           Intent resultIntent = new Intent(this, test.class);  
           Intent intent = new Intent(getApplicationContext(), TempServices.class);  
     PendingIntent pendingIntent = PendingIntent.getService(getApplicationContext(), 0, intent, 0);  
     Log.e("Pending Intent = ","" + pendingIntent.toString());  
           // The stack builder object will contain an artificial back stack for  
           // the  
           // started Activity.  
           // This ensures that navigating backward from the Activity leads out of  
           // your application to the Home screen.  
           TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);  
           // Adds the back stack for the Intent (but not the Intent itself)  
           stackBuilder.addParentStack(test.class);  
           // Adds the Intent that starts the Activity to the top of the stack  
           stackBuilder.addNextIntent(resultIntent);  
           PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,  
                     PendingIntent.FLAG_UPDATE_CURRENT);  
           remoteViews.setOnClickPendingIntent(R.id.textView1, resultPendingIntent);  
           remoteViews.setOnClickPendingIntent(R.id.button1, pendingIntent);  
           NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);  
           // mId allows you to update the notification later on.  
           mNotificationManager.notify(100, mBuilder.build());  

TempServices class (File Download):


 package com.example.uploadfile;  
 import android.app.NotificationManager;  
 import android.app.Service;  
 import android.content.Context;  
 import android.content.Intent;  
 import android.os.IBinder;  
 import android.support.v4.app.NotificationCompat;  
 import android.support.v4.app.NotificationCompat.Builder;  
 import android.util.Log;  
 public class TempServices extends Service {  
      protected static final int ID = 100;  
      private NotificationManager mNotifyManager;  
      private Builder mBuilder;  
      @Override  
      public IBinder onBind(Intent intent) {  
           // TODO Auto-generated method stub  
           return null;  
      }  
      @Override  
      public int onStartCommand(Intent intent, int flags, int startId) {  
           // TODO Auto-generated method stub  
           mNotifyManager = (NotificationManager) getApplicationContext()  
                     .getSystemService(Context.NOTIFICATION_SERVICE);  
           mBuilder = new NotificationCompat.Builder(this);  
           mBuilder.setContentTitle("Picture Download")  
                     .setContentText("Download in progress")  
                     .setSmallIcon(R.drawable.ic_launcher);  
           // Start a lengthy operation in a background thread  
           new Thread(new Runnable() {  
                @Override  
                public void run() {  
                     int incr;  
                     // Do the "lengthy" operation 20 times  
                     for (incr = 0; incr <= 100; incr += 5) {  
                          // Sets the progress indicator to a max value, the  
                          // current completion percentage, and "determinate"  
                          // state  
                          mBuilder.setProgress(100, incr, false);  
                          // Displays the progress bar for the first time.  
                          mNotifyManager.notify(0, mBuilder.build());  
                          // Sleeps the thread, simulating an operation  
                          // that takes time  
                          try {  
                               // Sleep for 5 seconds  
                               Thread.sleep(5 * 1000);  
                          } catch (InterruptedException e) {  
                               Log.e("error-->", "sleep failure");  
                          }  
                     }  
                     // When the loop is finished, updates the notification  
                     mBuilder.setContentText("Download complete")  
                     // Removes the progress bar  
                               .setProgress(0, 0, false);  
                     mNotifyManager.notify(ID, mBuilder.build());  
                }  
           }  
           // Starts the thread by calling the run() method in its Runnable  
           ).start();  
           return super.onStartCommand(intent, flags, startId);  
      }  
 }  

Comments

Popular posts from this blog

Android - Google MAP V2 PART 2

Download Full Code  of  PART-1 , 2 , 3 , 4 Before do this check part 1 Note : I have to run this in API 8 to API 17 that why i have used  ActionBarSherlock  support library. if you don't want that then replace it.  In main Activity i have added following code. package com.djandroid.mapsv2; import android.os.Bundle; import android.support.v4.app.FragmentManager; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.GoogleMap.OnMapClickListener; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; public class MainActivity extends SherlockFragmentActivity { private GoogleMap MAP; @Override protected void onCreate(Bundle arg0) { // TODO Auto-generated method stub setTheme(R.style....

ANDROID - update status Linked-IN

jars: 1. linkedin-j-android.jar 2. scribe-1.3.1.jar MainActivity: package com.testshare; import java.util.EnumSet; import org.scribe.oauth.OAuthService; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import com.google.code.linkedinapi.client.LinkedInApiClient; import com.google.code.linkedinapi.client.LinkedInApiClientFactory; import com.google.code.linkedinapi.client.enumeration.NetworkUpdateType; import com.google.code.linkedinapi.schema.Network; public class TestshareActivity extends Activity { private int LINKEDIN_OAUTH_RESULT_CODE = 4000; private OAuthService service; private static final String PROTECTED_RESOURCE_URL = "http://api.linkedin.com/v1/people/~"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(...

Android - Google MAP V2 PART 1

Download Full Code  of PART-1 , 2 , 3 , 4 Download and configure Google Play Services Library in Eclipse Google Map for Android is now integrated with Google Play Services. So we need to set up Google Play Service Library for developing Google Map application in Android. Get the API key for Google Maps v2: Linux  :  For any other OS use this :  keytool -list -v -alias androiddebugkey \ -keystore <path_to_debug_keystore>debug.keystore \ -storepass android -keypass android Register with the Google APIs Console :    Google APIs Console  Select here the  Services  entry: Activate the  Google Maps Android API v2 . Register your application via its package in this console together with the SHA-1 fingerprint of your signature key. Click on Create new Android Key.. Add you SHA-1 and your package name in to box like example given in alert box. Support library...