package se.slide.timy; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.support.v4.app.NotificationCompat; import android.support.v4.app.TaskStackBuilder; public class ShowNotification { public static final String EXTRA_TITLE = "extra_title"; public static final String EXTRA_TEXT = "extra_text"; public static final String EXTRA_NOTIFICATION_ID = "extra_notification_id"; public static final String EXTRA_CODE = "extra_code"; public static void showNotification(Context ctx, int notificationId, String title, String text, int code) { NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(ctx) .setSmallIcon(R.drawable.ic_launcher_bw) .setAutoCancel(true) .setContentTitle(title) .setContentText(text); // Creates an explicit intent for an Activity in your app Intent resultIntent = new Intent(ctx, MainActivity.class); resultIntent.putExtra(EXTRA_CODE, code); resultIntent.putExtra(EXTRA_TITLE, title); resultIntent.putExtra(EXTRA_TEXT, text); resultIntent.putExtra(EXTRA_NOTIFICATION_ID, notificationId); // 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(ctx); // Adds the back stack for the Intent (but not the Intent itself) stackBuilder.addParentStack(MainActivity.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 ); mBuilder.setContentIntent(resultPendingIntent); NotificationManager mNotificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(notificationId, mBuilder.build()); } }