Função setRepeating do AlarmManager não está repetindo o broadcast
26/06/2017
0
Tenho um alarm que está sendo disparado no onCreate da activity ele ativa o broadcast e o broadcast ativa a notificação, porém só está funcionando na primeira vez, e não está fazendo a repetição da notificação.
código do MainActivity
código do Broadcastreceiver
código do MainActivity
public class MainActivity extends AppCompatActivity { public static SQLiteDatabase banco_dados; public static int id_notification; public String id; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try { Cursor cursor_hora = banco_dados.rawQuery("SELECT * FROM lista_notificacoes order by id DESC", null); int indiceColunaHora = cursor_hora.getColumnIndex("hora_notificacao"); int indiceColunaiD = cursor_hora.getColumnIndex("id"); int tempo = 0; Calendar c = Calendar.getInstance(); Intent intent = new Intent("ALARME_DISPARADO"); PendingIntent p = PendingIntent.getBroadcast(this, 0, intent, 0); cursor_hora.moveToFirst(); while (cursor_hora != null) { String teste = cursor_hora.getString(indiceColunaHora); id = cursor_hora.getString(indiceColunaiD); switch (teste){ case "5 em 5 minutos": tempo = 2000; break; } c.setTimeInMillis(System.currentTimeMillis()); AlarmManager alarme = (AlarmManager) getSystemService(ALARM_SERVICE); alarme.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis()+tempo, 2000, p); //intent.putExtra("id",id); //sendBroadcast(intent); cursor_hora.moveToNext(); } }catch (Exception e){ e.printStackTrace(); } }
código do Broadcastreceiver
public class BroadcastReceiverAux extends BroadcastReceiver { public String texto; @Override public void onReceive(Context context, Intent intent) { try { String id = intent.getStringExtra("id"); Cursor cursor_horario = banco_dados.rawQuery("SELECT texto_notificacao FROM lista_notificacoes where id=" + id, null); cursor_horario.moveToFirst(); int indiceColunaTexto = cursor_horario.getColumnIndex("texto_notificacao"); texto = cursor_horario.getString(indiceColunaTexto); gerar_notificacao(context,texto); }catch (Exception e){ e.printStackTrace(); }
Igor Silva
Curtir tópico
+ 0
Responder
Posts
Clique aqui para fazer login e interagir na Comunidade :)