我想在每天上午8:00创建通知。我在SQLite数据库中有一些数据,此时我每天都想从中获取数据并从中创建通知。创建新通知没有问题,但我现在每天如何显示它?
我想我必须使用服务但是如何告诉系统在特殊时刻启动此服务?我应该使用什么样的服务?我想如果系统调用该服务,它会启动一个特定的功能,我可以运行我的代码连接到数据库并创建并将我的通知发送到系统吗?
我无法理解的是,如果我在主Activity中注册该服务,为什么系统会在用户关闭我的应用程序时启动该服务?任何人都可以向我解释一下吗?我总是认为如果我的主要活动被破坏,服务也会被破坏。
答案 0 :(得分:7)
使用Alarm manager课程并将通知放在NotifyService
课程中。这将在每天早上8点发出警报:
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, 08);
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 00);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000 , pendingIntent); //set repeating every 24 hours
答案 1 :(得分:2)
您不需要服务器。我认为实现这个的最好方法是使用AlarmManager。