I use BroadCastReceiver
, where I accept the BOOT_COMPLETED
action. after receiving this broadcast, AlarmManager
installed, and this AlarmManager
triggers a notification: Code for the broadcast receiver:
package pit.opensource.events; import java.util.Calendar; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class BootReciver extends BroadcastReceiver { Context c; @Override public void onReceive(Context context, Intent intent) {
ShowNotificationService
Code:
package pit.opensource.events; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.util.Log; import android.widget.Toast; public class ShowNotificationService extends Service { @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onStart(Intent intent,int startId){ Toast.makeText(getApplicationContext(), "Alaraaaaaaaam", Toast.LENGTH_LONG).show(); Log.d("Alarm","Notification Service"); showNotification(); } private void showNotification(){ Intent i = new Intent(getApplicationContext(), DetailsActivity.class); Toast.makeText(getApplicationContext(), "Dowanlod finished!", Toast.LENGTH_LONG).show(); int notificationID = 1; NotificationManager nm = (NotificationManager) getSystemService(getApplicationContext().NOTIFICATION_SERVICE); Log.d("Notification","Notification is set--------------------"); PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, i, 0); CharSequence tickerText = "Alaraaaaaaaam!"; long when = System.currentTimeMillis(); int icon = R.drawable.ic_launcher; Notification notification = new Notification(icon,tickerText,when); CharSequence contentTitle = "Alarm Alarm Alarm Alarm !!"; CharSequence contentText = "Please click here to display more details"; notification.setLatestEventInfo(getApplicationContext(), contentTitle, contentText, contentIntent); //---100ms delay, vibrate for 250ms, pause for 100 ms and // then vibrate for 500ms--- notification.vibrate = new long[] { 100, 250, 100, 500}; // Needs vibrate permissions nm.notify(notificationID, notification); } }
source share