繁体   English   中英

android-如何在特定时间推送通知(提醒)?

[英]android - how to push notification (reminder) on a specific time?

我检查了堆栈溢出和Google文档中的几乎所有问题,但仍然不明白该如何准确地用于我的案例。

我想要的是,用户将在应用程序中选择提醒日期,并且在该时间内应用程序将发送通知,即使应用程序在提醒设置时间和提醒时间之间关闭或手机重新启动也是如此。

那我需要用什么呢? 我需要哪些课程? 广播接收器,AlarmManager这两个足够还是什么? 代码20-30行的示例将很不错=)

您将同时需要两件事。

设置:您需要先在清单中注册意图,然后才能将您的应用设置为侦听电话。

基本上,当用户选择时间时,您将需要:

  1. 将该时间保存在文件/ db /共享的首选项中。
  2. 设置警报管理器以在适当的时间唤醒您的应用
  3. 当警报管理器向您发送广播时,启动一项服务以执行必要的工作(广播接收者必须在短时间内完成其工作,因此最好启动一项服务)
  4. 在您的服务中,从文件/数据库/共享首选项中删除时间

如果您的应用曾经广播过电话已重启的广播,则所有警报都将丢失。 您需要使用保存在文件/ db /共享首选项中的时间来重置它们。

请查看Android Developers网站上的日历意图,以便您可以使用它们来确定时间等。在广播接收器上,将详细信息或时间安排传递给广播接收器。 一旦执行了此操作,请使用警报管理器等检查时间是否正确,并在时间正确时发送推送通知。

我说这是假设您已经了解日历,警报管理器和广播接收器的意图。 如果您不这样做,建议您将以下内容与附加的Android开发人员一起使用。

  1. 使用AlertManager.set在特定时间发送通知。
  2. 要重新设置警报通知,请使用

     <receiver android:name=".AfterBootReceiver" android:label="AfterBootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"></action> </intent-filter> 

@Override public void onReceive(Context context,Intent intent){

    ...
    }

重启设备后重置AlarmManager.set。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM