Note that there are some explanatory texts on larger screens.

plurals
  1. POUsing multiple Alarm Manager Even If App closed?
    primarykey
    data
    text
    <p>sorry my english is not good. I have an application and its trigger multipe alarms and snooze when its open. But when the app is closed it only trigger the first alarm and then (even if i snooze), he dont trigger any. My classes:</p> <p>When i call the alarms:</p> <pre><code>public static void alarm_event(Context context) { try { ArrayList&lt;actividades&gt; A = new ArrayList&lt;actividades&gt;(); A = actividades.getActivitdade_for_alarm(context); int i = 0; while (i &lt; A.size()) { Intent myIntent = new Intent(context, alarm_receiver.class); PendingIntent pilocal = PendingIntent.getBroadcast(context, 100 + A.get(i).getId(), myIntent, 0); AlarmManager alarmManager = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); alarmManager.cancel(pilocal); pilocal.cancel(); Log.d("A_organizer Services", "Alarm detached"); i++; } i = 0; while (i &lt; A.size()) { // Toast.makeText(context, // "Time to alarme "+A.get(i).getAlarm_hora().getTimeInMillis(), // Toast.LENGTH_LONG).show(); if (A.get(i).isAlarm()) { PendingIntent pendingIntent; final int _id = (int) System.currentTimeMillis(); Log.d("A_organizer Services", "Alarm atached"); AlarmManager alarmManager = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); Intent myIntent = new Intent(context, alarm_receiver.class); myIntent.putExtra("Event", A.get(i)); pendingIntent = PendingIntent.getBroadcast(context, 100 + A .get(i).getId(), myIntent, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.set(AlarmManager.RTC_WAKEUP, A.get(i) .getAlarm_hora().getTimeInMillis(), pendingIntent); } i++; } } catch (Exception e) { Mensagens_Alerta.showSimple_OK_Alert("Error " + e, context); } } </code></pre> <p>My alarm receiver:</p> <pre><code>public class alarm_receiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { try{ actividades A = (actividades) intent.getSerializableExtra("Event"); Intent service1 = new Intent(context, Alarm_service.class); service1.putExtra("Event", A); context.startService(service1); } catch (Exception e) { Mensagens_Alerta.showSimple_OK_Alert("Error "+e, context); } } } </code></pre> <p>My alarm Service:</p> <pre><code>@SuppressWarnings("static-access") @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); Intent I = new Intent(this.getApplicationContext(), dialog_alarm_activity.class); I.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); actividades A = (actividades) intent.getSerializableExtra("Event"); I.putExtra("Event", A); I.setFlags(I.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY); this.startActivity(I); } </code></pre> <p>The transparent dialog Stop, Snoozed activity:</p> <pre><code>public class dialog_alarm_activity extends Activity { public static PendingIntent pendingIntent; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub final actividades A = (actividades) getIntent().getSerializableExtra( "Event"); SimpleDateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy"); final SimpleDateFormat formatTime = new SimpleDateFormat("HH:mm"); //getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE); final WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG"); if(pm.isScreenOn()){ } else{ wakeLock.acquire(); Handler handler=new Handler(); Runnable r=new Runnable() { public void run() { wakeLock.release(); } }; handler.postDelayed(r, 5000); } new AlertDialog.Builder(dialog_alarm_activity.this) .setTitle(R.string.app_name) .setMessage( "Alarm - " + A.getNome() + " '" + formatTime.format(Calendar.getInstance() .getTime()) + "'") .setPositiveButton("Stop", new OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { // TODO Auto-generated method stub } }).setNeutralButton("Snooze", new OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { // TODO Auto-generated method stub Calendar C = Calendar.getInstance(); C.add(Calendar.MINUTE, 1); C.set(Calendar.SECOND, 0); Log.d("A_organizer Services", "Snoozed - " + formatTime.format(C.getTime())); AlarmManager alarmManager = (AlarmManager) dialog_alarm_activity.this .getSystemService(Context.ALARM_SERVICE); Intent myIntent = new Intent( dialog_alarm_activity.this, alarm_receiver.class); myIntent.putExtra("Event", A); pendingIntent = PendingIntent.getBroadcast( dialog_alarm_activity.this, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.set(AlarmManager.RTC_WAKEUP, C.getTimeInMillis(), pendingIntent); Log.d("Alarme", "Alarme posto"); } }).show(); super.onCreate(savedInstanceState); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload