每次我打开应用程序时都会触发预定的通知

编程入门 行业动态 更新时间:2024-10-26 06:39:36
本文介绍了每次我打开应用程序时都会触发预定的通知的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在构建一个应用程序,它会在 IST 11:30 触发通知......我已经测试了它的工作原理,但是在 11:30 之后每当我打开我的应用程序它都会发出通知......

I am building an app which triggers a notification at 11:30 IST..I have Tested It Its Working But After 11:30 Whenever i open my app it issues a notification...

我不知道为什么我认为在时间检查中应该是条件错误...

i don't know why i think it should be some error in condition in time checking...

我希望每天只按时触发一次通知...然后第二天...:)

i want notification to be triggered on time only once in a day...and then the next day...:)

请解决这个问题提前致谢

please resolve this thanks in advance

**MainActivity.java** @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinner = (ProgressBar)findViewById(R.id.progressBar); spinner.setVisibility(View.GONE); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 11); calendar.set(Calendar.MINUTE, 30); calendar.set(Calendar.SECOND, 00); Intent intent1 = new Intent(MainActivity.this, AlarmReciever.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0,intent1, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager am = (AlarmManager) MainActivity.this.getSystemService(MainActivity.this.ALARM_SERVICE); am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent); } **AlarmReciever.java** package com.alivestats.alivestats; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.media.RingtoneManager; import android.Uri; import android.support.v4.app.NotificationCompat; public class AlarmReciever extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub int MID = 1; long when = System.currentTimeMillis(); NotificationManager notificationManager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); Intent notificationIntent = new Intent(context, MainActivity.class); notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder( context).setSmallIcon(R.drawable.background) .setContentTitle("title") .setContentText("description").setSound(alarmSound) .setAutoCancel(true).setWhen(when) .setContentIntent(pendingIntent) .setVibrate(new long[]{1000, 1000, 1000, 1000, 1000}); notificationManager.notify(MID, mNotifyBuilder.build()); MID++; } }

推荐答案

在喝了这么多茶和咖啡之后,我自己编写了答案...

After So Much Of Tea and Coffee i coded the answer myself...

long t = System.currentTimeMillis(); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 11); calendar.set(Calendar.MINUTE, 30); calendar.set(Calendar.SECOND, 00); if (t <= calendar.getTimeInMillis()) { //calendar.add(Calendar.DATE, 6); //add 6 days. Intent intent1 = new Intent(MainActivity.this, AlarmReciever.class); intent1.setAction("NOTE"); PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager am = (AlarmManager) MainActivity.this.getSystemService(MainActivity.this.ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); //am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent); } else{ }

我刚刚将系统时间与通知时间进行了比较..如果通知时间小于等于系统时间,则它的真实性和接收器将工作..但如果不是那么什么都不会发生......

i have just compared system time to the notification time..if notifcation time is less than equal to system time its true and reciever will work..but if not then nothing will happen...

顺便说一句,感谢您帮助@tiny 和@Mahesh

BTW thanks for helping @tiny and @Mahesh

更多推荐

每次我打开应用程序时都会触发预定的通知

本文发布于:2023-11-27 03:25:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1636374.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:都会   应用程序   通知

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!