Android AlarmManager推送通知

use*_*256 5 android push-notification alarmmanager

我正在使用此通知代码:

package com.example.mega;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;


public class TimeAlarm extends BroadcastReceiver {

     NotificationManager nm;

     @Override
     public void onReceive(Context context, Intent intent) {
         nm = (NotificationManager) context
             .getSystemService(Context.NOTIFICATION_SERVICE);
         CharSequence from = "Tech";
         CharSequence message = "Check out our NEW COLLECTION !!";
         PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
             new Intent(), 0);
         Notification notif = new Notification(R.drawable.icon,
             "Check out our NEW COLLECTION !!" , System.currentTimeMillis());
         notif.setLatestEventInfo(context, from, message, contentIntent);
         nm.notify(1, notif);
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,由于我没有使用过AlarmManager的经验,所以我还没有添加它,所以我是android的新手。我应该在代码中添加什么才能每24小时显示一次通知?

Ste*_*ini 4

Calendar calendar = Calendar.getInstance();
// 8.00 (8 AM) 
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);

PendingIntent pi = PendingIntent.getService(context, 0 , new Intent(context, Your_Class.class),PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                            AlarmManager.INTERVAL_DAY, pi);
Run Code Online (Sandbox Code Playgroud)

这会在每天上午 8 点设置闹钟

或者您可以使用https://github.com/commonsguy/cwac-wakeful。查看链接上的文档。

看一下:每 24 小时发出一次火灾通知,准确时间为上午 8 点

这是: http: //blog.blundellapps.com/notification-for-a-user-chosen-time/