我搜索了所有类似的问题/答案,但我无法使用我的代码!我可以立即显示通知。但是,我需要它在用户运行应用程序后24小时出现。我被卡住了。我尝试使用Alarm Manager但没有成功。这是我的工作代码。请指导我。感谢。
public class NotifyNow {
static void noty(Context context, String message) {
int icon = R.drawable.ic_launcher;
long when = System.currentTimeMillis();
String appname = context.getResources().getString(R.string.app_name);
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification;
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
new Intent(context, MainActivity.class), 0);
NotificationCompat.Builder builder = new NotificationCompat.Builder(
context);
notification = builder.setContentIntent(contentIntent)
.setSmallIcon(icon).setTicker(appname).setWhen(0)
.setAutoCancel(true).setContentTitle(appname)
.setContentText(message).build();
//notification.defaults |= Notification.DEFAULT_SOUND;
notification.sound =
RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
notificationManager.notify(0 , notification);
}
我从我的MainActivity类中调用它,如下所示:
NotifyNow.noty(this,"Notification worked");
如何实施警报。我很欣赏详细的答案,因为我对java很新。
答案 0 :(得分:1)
我试过这个......
放大写通知服务
notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification notifyDetails=new Notification(
R.drawable.icon,contentTitle,System.currentTimeMillis());
notificationManager .notify(MY_SIMPLE_NOTFICATION_ID, notifyDetails);
您也可以使用this库来实现这一目标......
答案 1 :(得分:1)
当您的应用程序通过在Activity的onStart()上运行时,您可以使用日期API找到当前日期时间。 例如
currentTime = SystemClock.currentThreadTimeMillis();
现在,您可以使用AlarmManager API添加警报。 AlarmManager Refernce
注意:Alarm Manager适用于您希望在特定时间运行应用程序代码的情况, 即使您的应用程序当前没有运行。对于正常的定时操作(刻度,超时等),它更容易 并且使用Handler效率更高。
创建警报的示例代码是:
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
alarmMgr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
currentTime +
24 * 60 * 60 * 1000, alarmIntent);
请注意:此代码未经过测试,只是一个必要的概念。如果您遇到任何问题,请告诉我。