每天特定时间的通知android [英] Notifications in specific time every day android
问题描述
我想制作一个应用程序,让用户决定每天希望他在什么时间通过通知提醒...
I'd like to make an app that let the user decide what time everyday wants him to remind something with notification...
我想知道我应该如何在用户想要的特定时间触发通知,例如早上 7:00 并让他点击通知并在特定活动中输入应用程序.但是当用户不想收到更多通知(单击按钮)时,我如何取消所有通知...?
I'd like to know how am i supposed to trigger a notification in secific time the user wants e.x 7:00am and make him tap on the notification and enter the application in specific activity. But when the user doesn't want to get any more notifications (with a button click) how am i cancel all the notifications...?
我做了类似的东西
Intent intent = new Intent(this, main.class);
Bundle bundle = new Bundle();
bundle.putString("title", "Some Title");
intent.putExtras(bundle);
PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
String body = "Tap to see the Activity";
String title = "Title of notification";
Notification n = new Notification(R.drawable.ic_launcher, body, System.currentTimeMillis());
n.setLatestEventInfo(this, title, body, pi);
n.defaults = Notification.DEFAULT_ALL;
nm.notify(uniqueID, n);
但直到现在都没有运气....
but no luck until now....
谢谢...
<<<>>
我正在这样做
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
int icon = R.drawable.notification_icon;
CharSequence tickerText = "Ome TickerText";
long when = System.currentTimeMillis();
Context context = getApplicationContext();
CharSequence contentTitle = "Some Title";
CharSequence contentText = "Some Text";
Intent notificationIntent = new Intent(context, LandingActivity.class);
Bundle bundle = new Bundle();
bundle.putString("title", "a title");
bundle.putString("title2", "title number 2");
bundle.putString("action", "tip");
bundle.putString("greek", "somehting else");
bundle.putInt("action_num", 2);
notificationIntent.putExtras(bundle);
alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
contentIntent = PendingIntent.getActivity(Notifications.this, 0, notificationIntent, 0);
Notification notification = new Notification(icon, tickerText, when);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
notification.defaults = Notification.DEFAULT_ALL;
mNotificationManager.notify(UniqueID, notification);
int hour = tp.getCurrentHour();
int minutes = tp.getCurrentMinute();
contentIntent = PendingIntent.getService(Notifications.this, 0, notificationIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minutes);
calendar.set(Calendar.SECOND, 00);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), contentIntent);
但没有运气...
有什么帮助吗?
推荐答案
使用 alarm manager
并将你的通知放在 NotifyService
类
Use alarm manager
and put your notification in NotifyService
class
Intent myIntent = new Intent(Current.this , NotifyService.class);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
pendingIntent = PendingIntent.getService(ThisApp.this, 0, myIntent, 0);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 00);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY , pendingIntent); //set repeating every 24 hours
这篇关于每天特定时间的通知android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!