2016-08-09 34 views
1

Ich codiere eine Anwendung. Ich habe eine Datenbank mit SQLite und ich bekomme Zeile und Schiene. Ich möchte mehrere Alarme einstellen, aber nur die ersten Daten werden angezeigt. Bitte hilf mir.Setzen Sie mehrere Alarme von Sqlite

public void alarm_kur() { 
    SQLiteDatabase db = helper.getReadableDatabase(); 
    String durum = "0"; 
    String where = Veritabani.COLUMN_DURUM + "=?"; 
    String selectquery = "SELECT * FROM " + Veritabani.TABLE_NAME; 
    String[] whereargs = new String[]{durum}; 
    Cursor cursor = db.query(Veritabani.TABLE_NAME, null, where, whereargs, null, null, null, null); 
    AlarmManager alarmManager; 
    alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    if (cursor.moveToFirst()) { 
     do { 
      String mesaj = cursor.getString(cursor.getColumnIndex(Veritabani.COLUMN_MESAJ)); 
      String tel_number = cursor.getString(cursor.getColumnIndex(Veritabani.COLUMN_NUMBER)); 
      String Time = cursor.getString(cursor.getColumnIndex(Veritabani.COLUMN_SAAT)); 
      String Date = cursor.getString(cursor.getColumnIndex(Veritabani.COLUMN_TARIH)); 
      String Id = cursor.getString(cursor.getColumnIndex(Veritabani.COLUMN_ID)); 
      String[] saat_dakika = Time.split(":"); 
      String[] tarih = Time.split("/"); 
      int Saat = Integer.parseInt(saat_dakika[0]); 
      intDakika = Integer.parseInt(saat_dakika[1]); 


      final int _id = (int) System.currentTimeMillis(); 
      ArrayList<PendingIntent> intentArray = new ArrayList<PendingIntent>(); 
      PendingIntent appIntent = null; 
      for (int say = 0; say < cursor.getCount(); say++) { 
       Intent intent = new Intent(this, MyReceiver.class); 
       intent.putExtra("tel_number", tel_number); 
       intent.putExtra("mesaj", mesaj); 
       appIntent = PendingIntent.getBroadcast(this, say, intent, 0); 


       getSystemService(ALARM_SERVICE); 
       ,appIntent); 
       Calendar calSet = Calendar.getInstance(); 
       calSet.set(Calendar.HOUR_OF_DAY, Saat); 
       calSet.set(Calendar.MINUTE, Dakika); 
       calSet.set(Calendar.SECOND, 0); 
       calSet.set(Calendar.MILLISECOND, 0); 
       long sdl = calSet.getTimeInMillis(); 

       alarmManager.set(AlarmManager.RTC_WAKEUP, sdl, appIntent); 
       intentArray.add(appIntent); 

      } 


     } while (cursor.moveToNext()); 


    } 
} 

Dies ist der Code zum Einstellen von Alarmen.

Antwort

0

Verschieben ArrayList<PendingIntent> intentArray = new ArrayList<PendingIntent>(); außerhalb do while Schleife, ist es für jede Zeile neu instanziiert zu werden, so kann man nur eine Absicht nach do while Codeblock

+0

dank Ihrer antwort, aber es funktioniert nicht – Nuri

1

Sie verwenden erhalten werden versuchen-finally:

try { 
     while (cursor.moveToNext()) { 
       String ... 
       ... 
       alarmManager ... 
      } 

     } finally { 
      cursor.close(); 
     } 
    }