serkan özer
Bursa
05/02/2014 tarihinden beri üye
30
GY Puanı
73K
GY Sırası
Kişisel Sayfaları
İlgi Alanları
1
Rozet
2
Sertifika
1
Soru Sordu
0
Cevap Verdi
0
Blog Yazısı
0
Etiket Takibi
İş Tecrubesi
Kullanıcıya ait İş tecrübesi bilgisi bulunmamaktadır.
Eğitim Geçmişi
Marmara Üniversitesi
| Aralık 2020
- Aralık 2020
Dil Becerileri
Son Forum Aktiviteleri
1Haftanın belirli gününe nasıl alarm koyabilirim.
Merhaba arkadaşlar benim geliştirdiğim bir uygulama da ders programı oluşturuluyor. Ders zamanı gelince bildirim vermek istiyorum.
Yani pazartesi saat 8 de ders varsa. Her Hafta saat 8 de ders zamanı geldi. diye bildirim oluşturmak istiyorum. Bunu alarmmaneger ve notificition ile yapıyorum. Tek seferlik alarm verebiliyorum. Ama tekrarlı bir türlü veremedim. Kodlar şöyle. Recevier kısmı çalıştığı için onu vermiyecem.
private void alarmla() {
SQLiteDatabase db=activity.openOrCreateDatabase("SINIFD",activity.MODE_PRIVATE,null);
Cursor c = db.rawQuery("select * from ders", null);
if(c.getCount()>0){
c.moveToFirst();
do {
AlarmManager alarmManager = (AlarmManager) activity.getSystemService(Context.ALARM_SERVICE);
Toast.makeText(activity, c.getString(3).split(":")[0] + " " + c.getString(3).split(":")[1], Toast.LENGTH_LONG).show();
Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION");
notificationIntent.addCategory("android.intent.category.DEFAULT");
notificationIntent.putExtra("message", c.getString(1) + " dersi zamanı geldi. Kazanımlara ulaşmak için tıklayınız. İyi dersler.");
notificationIntent.putExtra("gizli", c.getString(6));
PendingIntent broadcast = PendingIntent.getBroadcast(activity, c.getInt(0), notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar timeOff = Calendar.getInstance();
int days = guncek(c.getString(5),timeOff) + (7 - timeOff.get(Calendar.DAY_OF_WEEK)); // how many days until Sunday
timeOff.add(Calendar.DATE, days);
timeOff.set(Calendar.HOUR, Integer.parseInt(c.getString(3).split(":")[0])); //buraya 22 geliyor databaseden
timeOff.set(Calendar.MINUTE,Integer.parseInt(c.getString(3).split(":")[1])); //buraya 10 geliyor mesala
timeOff.set(Calendar.SECOND, 0);
timeOff.set(Calendar.MILLISECOND, 0);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, timeOff.getTimeInMillis(),AlarmManager.INTERVAL_DAY * 7, broadcast);
} while (c.moveToNext());
c.close();
}
db.close();
Toast.makeText(activity,"Vay be ayar ",Toast.LENGTH_LONG).show();
}
private int guncek(String i,Calendar ib){
//benim database de kayıdım pazartesi 0 salı 1..... diye gidiyor.
switch(Integer.parseInt(i)+1){
case 1:
return ib.MONDAY;
case 2:
return ib.TUESDAY;
case 3:
return ib.WEDNESDAY;
case 4:
return ib.THURSDAY;
case 5:
return ib.FRIDAY;
case 6:
return ib.SATURDAY;
case 7:
return ib.SUNDAY;
default:
return 1;
}
}
Database kısmında sorun yok zaman ayarlama da var.
8 yıl 2 ay önce yanıtladın