1

My AlarmManager, похоже, не работает.Android-оповещение AlarmManager и BroadcastReceiver

Это мой код для настройки будильника:

 Intent intent1 = new Intent(this, Notify.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT); 
     AlarmManager am = (AlarmManager) this.getSystemService(this.ALARM_SERVICE); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(System.currentTimeMillis()); 
     calendar.set(Calendar.MINUTE, 20); 
     am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, pendingIntent); 

Это мой Notify класс:

public class Notify extends BroadcastReceiver { 
    public static final int uniqueID=3657554; 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    NotificationCompat.Builder n=new NotificationCompat.Builder(context); 
    n.setAutoCancel(true); 
    n.setSmallIcon(R.mipmap.ic_launcher); 
    n.setTicker("ticker"); 
    n.setWhen(System.currentTimeMillis()); 
    n.setContentTitle("title"); 
    n.setContentText("text"); 
    Intent it=new Intent(context,ListAll.class); 
    PendingIntent pi=PendingIntent.getBroadcast(context,0, it,0); 
    n.setContentIntent(pi); 
    ((NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE)).notify(uniqueID,n.build()); 
} 

}

И я следующий в моем манифесте:

<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/> 
<receiver android:name=".Notify" android:enabled="true" /> 

У меня нет никаких исключений, но уведомления не отображаются.

ответ

1

Используйте этот код, чтобы установить сигнализацию

Intent alarmIntent = new Intent(this, YourActivity.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0); 

AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 

Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis()); 
calendar.set(Calendar.HOUR_OF_DAY, 20); // '8pm' 
calendar.set(Calendar.MINUTE, 30); 
calendar.set(Calendar.SECOND, 1); 

manager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 
     AlarmManager.INTERVAL_DAY, pendingIntent); 
+0

ли первый сигнал, предполагают, чтобы быть вызвана в 'calendar.getTimeInMillis()' или это через 24 часа после этого? Я попробовал ваш код с измененным временем, но уведомления не отображаются. – EllenS

+0

Тревога в моем коде запускается в 8 вечера и повторяется каждые 24 часа, вы можете изменить свое время, как вы хотите – SaNtoRiaN

+0

эй вы, я должен проблема, когда время изменения при настройках устройства. Тревога нет истинного времени, когда я установил 8 вечера. Вы можете мне помочь. – QuestionAndroid

Смежные вопросы