0

アプリを作成し、3 時間ごとに通知を送信するアラーム マネージャーを設定しました。通知を 11:10 に送信する必要があり、電話が 11:00 に降りるとします。そのため、通知は届きません。携帯電話の電源を入れると、次の通知が 2:10 に届くので、すべて正常に動作しています。

ただし、電話が2回の通知のためにオフになった後、通知を受信しないことが観察されました. 何か提案はありますか?

コードが提供されます:

Intent intentAlarm = new Intent(this, NotifyBroadcast.class);
                      PendingIntent pintentAlarm = PendingIntent.getBroadcast(this, 0, intentAlarm, PendingIntent.FLAG_CANCEL_CURRENT);
                      AlarmManager mgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
                      // Start every 30 seconds
                      mgr.setRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 300, pintentAlarm);


// NotifyBroadcast:


public  class NotifyBroadcast extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub




    NotificationManager mNotificationManager =
            (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);


            Intent resultIntent = new Intent(context, MainActivity.class);


            PendingIntent resultPendingIntent =
                    PendingIntent.getActivity(
                    context,
                    0,
                    resultIntent,
                    0
                ); 



            Notification notification = new Notification(R.drawable.ic_launcher, "Let me know what is your emotion buddy!", System.currentTimeMillis());
            notification.defaults |= Notification.DEFAULT_SOUND;
            notification.sound = Uri.parse("file:///sdcard/notification/notification.mp3");
            //notification.flags = Notification.FLAG_AUTO_CANCEL;

            notification.setLatestEventInfo(context, "emotion interface", "Let me know what is your emotion buddy!", resultPendingIntent);



            int mId = 001;
            // mId allows you to update the notification later on.
            mNotificationManager.notify(mId, notification); 
          //  mNotificationManager.notify(mId,mBuilder.build());

            // mNotificationManager.cancel(mId);

}

}

4

1 に答える 1