2016-04-01 8 views
0
 Calendar calendar = Calendar.getInstance(); 
     Intent myIntent = new Intent(CubeActivity.this, MyReciever.class); 

     SharedPreferences shared = getApplicationContext().getSharedPreferences("notification5", getApplicationContext().MODE_PRIVATE); 
     SharedPreferences.Editor editor = shared.edit();  
     editor.putInt("minutes", (calendar.get(Calendar.HOUR_OF_DAY))-1); 
     editor.commit(); 

     myIntent.putExtra("minutes", (shared.getInt("minutes", 0))); 

     PendingIntent pendingIntent = PendingIntent.getBroadcast(CubeActivity.this, 0, myIntent,0); 

     AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
      alarmManager.set(AlarmManager.RTC_WAKEUP,shared.getInt("minutes", 0), pendingIntent); 
+0

düzgün sorunuzu açıklayın. –

+0

Alarm yöneticisi .set() yöntemini kullanarak, bazı bildirimler 24 saat sonra gelir ve bundan sonra kikat ve lolipop telefonlarda düzensiz olarak gelir. – kk2004

+0

API 19'dan başlayarak, bu yönteme aktarılan tetikleme zamanı hatalı olarak değerlendirilir. Bunu okuyun: //developer.android.com/reference/android/app/AlarmManager.html#set (int, uzun, android.app.PendingIntent) –

cevap

0

için düzgün çalışmıyor. Ancak, tetikleme süresi, alarmın sönmesi gereken milisaniye cinsinden olmalıdır. API Docs göre

:

public void seti (int tipi, uzun triggerAtMillis, PendingIntent işlemi)

tipi int: ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP, RTC veya RTC_WAKEUP biri.

triggerAtMillis uzun: Alarmın, uygun saati kullanarak (alarm tipine bağlı olarak) bitmesi gereken milisaniye cinsinden süre.

operation PendingIntent: Alarm çaldığında yapılması gereken işlem; genellikle IntentSender.getBroadcast() gelir. Bunun yerine kodunun altına

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP,shared.getInt("minutes", 0), pendingIntent); 

kullanın kullanmanın

0

:

long TICK_TIME = 60*1000; //the time to trigger alarm manager rite now its 1 minute 
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP,Calendar.getInstance().getTimeInMillis(), TICK_TIME, pendingIntent); 
+0

Alarmın her 24 saatte bir tetiklenmesini istiyorum. Hangi parametreleri kullanmalıyım? 24 saat boyunca – kk2004

+0

24 * 60 * 60 * 1000. – Pankaj

İlgili konular