我要在我的应用程序上插入一些提醒。他们每个人都会有不同的时间。阅读有关 BroadcastReceiver 的内容,即使应用程序未运行,静态版本也会运行。仅当应用程序处于活动状态时才是动态版本,在 onPause 时被销毁并在 onResume 时重新创建。
因为我要插入提醒,所以我是否需要为每个提醒创建静态接收器?处理不同时间的提醒是否正确?
静态还是动态?我们可以假设提醒可以设置更长的时间,之后就会被触发。因此,在您的情况下使用静态广播接收器更安全。
在你的清单文件中:
<receiver android:name=".YourBroadcastReceiver"/>
每个提醒都有单独的接收器?事实上,没有。您可以将所有提醒指向一个静态接收器,它将毫无问题地处理所有提醒。如果您想区分需要执行不同操作的提醒类型,您可以将一些 stringExtra 添加到您的意图中并将其提取到if-else
您的广播接收器中的声明。这是一种方法。
如果提醒设置为未来相当长的日期:您可能知道您正在使用 AlarmManager 设置提醒。但是,如果系统重新启动,所有警报都会被删除。因此,您可以考虑在提醒中添加某种形式的回复。您可以将有关提醒的信息存储在 SharedPreferences/SQLite 数据库中或您喜欢的任何其他方法中,只要您可以轻松地从中读取和写入数据即可。然后您需要在系统重新启动后重置警报。为此,您需要再添加一个broadcastReceiver
它将侦听系统重新启动操作是否完成,并在收到它时运行。然后您在那里重新创建警报或单独运行intentService
这将重新创建警报。
在你的清单文件中:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name=".BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)