android - 如何在特定时间推送通知(提醒)?
android - how to push notification (reminder) on a specific time?
我检查了堆栈溢出和 google 文档中的几乎所有问题,但仍然无法理解确切地 对我的案例使用什么。
我想要的是,用户将在应用程序中 select 提醒日期,并且在那个时间应用程序将发送通知,即使 应用程序已关闭或 phone 在提醒设置之间重新启动时间和提醒时间。
那我需要用什么?我需要哪个 类? Broadcast Receiver, AlarmManager 这两个就够了还是什么?代码示例 20-30 行会很好 =)
你需要这两样东西。
设置:
您需要将您的应用设置为监听 phone,首先在您的清单中注册 this 意图。
基本上你当你的用户选择的时候,你会需要:
- 将时间保存在 file/db/shared 首选项中。
- 设置闹钟管理器以在正确的时间唤醒您的应用程序
- 当报警管理器发送
你一个广播,启动一个服务来做必要的工作(广播
接收者必须在短时间内完成他们的工作,所以
最好开个服务)
- 在您的服务中,删除时间
来自您的 file/db/shared 偏好
如果您的应用收到 phone 已重启的广播,那么您的所有闹钟都会丢失。您需要使用保存在 file/db/shared 首选项中的时间来重置它们。
查看 Android 开发者网站以了解日历意图,以便您可以使用它们来确定时间等。
在您的广播接收器上将详细信息或时间传递给广播接收器。一旦你这样做,使用闹钟管理器等来检查时间是否完美,并在时间正确时发送推送通知。
我这么说是假设您已经了解日历、警报管理器和广播接收器的意图。如果你不这样做,我建议用 Android 开发人员附加到谷歌搜索以下内容。
- 使用AlertManager.set在特定时间发送通知。
要重新设置警报通知,请使用
<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。
我检查了堆栈溢出和 google 文档中的几乎所有问题,但仍然无法理解确切地 对我的案例使用什么。
我想要的是,用户将在应用程序中 select 提醒日期,并且在那个时间应用程序将发送通知,即使 应用程序已关闭或 phone 在提醒设置之间重新启动时间和提醒时间。
那我需要用什么?我需要哪个 类? Broadcast Receiver, AlarmManager 这两个就够了还是什么?代码示例 20-30 行会很好 =)
你需要这两样东西。
设置: 您需要将您的应用设置为监听 phone,首先在您的清单中注册 this 意图。
基本上你当你的用户选择的时候,你会需要:
- 将时间保存在 file/db/shared 首选项中。
- 设置闹钟管理器以在正确的时间唤醒您的应用程序
- 当报警管理器发送 你一个广播,启动一个服务来做必要的工作(广播 接收者必须在短时间内完成他们的工作,所以 最好开个服务)
- 在您的服务中,删除时间 来自您的 file/db/shared 偏好
如果您的应用收到 phone 已重启的广播,那么您的所有闹钟都会丢失。您需要使用保存在 file/db/shared 首选项中的时间来重置它们。
查看 Android 开发者网站以了解日历意图,以便您可以使用它们来确定时间等。 在您的广播接收器上将详细信息或时间传递给广播接收器。一旦你这样做,使用闹钟管理器等来检查时间是否完美,并在时间正确时发送推送通知。
我这么说是假设您已经了解日历、警报管理器和广播接收器的意图。如果你不这样做,我建议用 Android 开发人员附加到谷歌搜索以下内容。
- 使用AlertManager.set在特定时间发送通知。
要重新设置警报通知,请使用
<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。