我正在创建一个像虚拟时间卡一样工作的APP:用户输入他上班的时间,他出去吃午饭的时间以及他再次回来工作的时间。然后他按下一个按钮,他可以看看他什么时候可以出去。当然,对于像我这样有灵活工作时间的人来说,这很有用。
APP有效。现在我想添加一个新功能。假设我可以在下午5点离开我的办公室,我希望我的应用程序在16:55向我发送通知,发出警报。让我想起我可以出去的东西。怎么办?
在我看来,我有以下步骤:
但是,程序必须每次或每分钟至少检查一次。我真的不知道怎么做..
任何人都可以帮我一个想法吗?
伊万诺
我在MainActivity类的顶部添加了此代码:
AlarmManager alarmMgr = (AlarmManager)getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, OnAlarmReceive.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),1*60*1000, pendingIntent);
我得到的是APP每次重新加载60秒,调用MainActivity类并将用户先前输入的值重新加载到DB中。因此,如果没有看到,就无法输入新值!!
我喜欢的是:应用程序“永远”保留在后台并且只有在意识到用户可以在5分钟内离开办公室时才会自动唤醒。
我已经编写了代码的一部分,程序检查当前时间,并问自己“在用户离开办公室之前是否缺少5分钟?”如果答案是肯定的,则会显示一条短信并发出声音玩过的。这是代码的一部分:
NotificationCompat.Builder n = new NotificationCompat.Builder(this)
.setContentTitle("Arrivato nuovo messaggio!!")
.setContentText("Autore: Nicola Rossi")
.setSmallIcon(android.R.drawable.ic_dialog_info)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.setSound(sound);
所以,该程序可以工作..但是有一个小故障,它只在我轮班结束前5分钟打开应用程序时发送通知。如果我在任何其他时间打开应用程序,它将不会发送通知。无论我打开应用程序的时间,我都希望发送此通知。
我该如何解决?
答案 0 :(得分:0)
您正在寻找的是一个警报管理器。这是您的应用程序外部可用于通知用户的服务。使用待定意图调用此服务。
https://developer.android.com/reference/android/app/AlarmManager.html