2016-09-02 15 views
0

私はアプリケーションを開発したこんにちは友人コースを作成します。私はタイムコースのときに通知したい。どのように私は週の特定の曜日にアラームを置くことができます

月曜日の午前8時には授業があるとします。クラス時間の週8時間が来た。私は通知を作成したい。私はalarmmanagerと通知でこれをやっています。私はあなたにワンタイムアラームを与えることができます。しかし何とか私は繰り返すことができませんでした。コードは次のとおりです。それが受信者の一部なので、私はそれを試しません。

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 = Calendar.FRIDAY + (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.setRepeating(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(); 
} 

調整のデータベースに問題がない場合。

答えて

0

モバイルデバイスを再起動した後でアラームマネージャを再起動するのを忘れないでください!

利用放送受信機は、このアクションをキャッチする

の再起動についての詳細:Trying to start a service on boot on Android

関連する問題