Mic*_*ton 6 android android-alarms android-notifications dart flutter
我对如何完成这项任务有点不确定,希望得到一些澄清。
APP:它提醒人们给植物浇水,用户可以指定他们希望这样做的频率。
我面临的问题是如何向用户发送本地通知。而不是为他们有预定时间关闭的每个新工厂设置单独的通知。我希望我可以指定一天中的某个时间(比如早上 8:00),我的应用程序会在其中运行我所有的植物并检查今天是否需要浇水。如果他们这样做了,它会通过本地通知告诉用户,例如“今天你有 5 株植物要浇水”,当他们点击它时,他们会进入应用程序,向他们显示它们是什么植物。
现在我仍然是 Android/Flutter 开发的新手,只是有点不确定这方面的最佳实践是什么?希望我说的够清楚,很高兴回答任何进一步的问题。在此先感谢您的帮助。
这实际上取决于您是否需要针对每种植物进行特定提醒(例如,植物 1 应该在 16:30 浇水,植物 2 需要在 17:30 浇水),或者您所描述的所有通知一起到达的场景正是您想要的。
如果您需要每个植物的提醒 - 唯一的方法是为每个植物设置警报
如果您可以接受所有植物的一个提醒 - 您可以设置一个闹钟来提醒所有植物
请在此处查看出色的实施示例
public class Water extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
wl.acquire();
// Check if there are plants need watering
// Notify user
wl.release();
}
public void setAlarm(Context context)
{
AlarmManager am =( AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, Alarm.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 10, pi); // Millisec * Second * Minute
}
}
Run Code Online (Sandbox Code Playgroud)
当您全部设置闹钟时,Android 系统将安排一个重复闹钟,在 onReceive 函数中唤醒您的进程(通过向其广播事件)。
请记住,这只是核心,请查看我提供的完整设置(包括所需权限)的链接
归档时间: |
|
查看次数: |
2134 次 |
最近记录: |