Android相当于iOS';UILocalNotification?

Android相当于iOS';UILocalNotification?,android,ios,uilocalnotification,Android,Ios,Uilocalnotification,我希望在我的Android应用程序中使用本地通知,我想知道Android是否有类似iOS的UILocalNotification可用 我喜欢UILocalNotification允许我为将来的某个日期“安排”一个或多个本地通知,并且无论手机处于唤醒或休眠状态(如常规推送通知),这些通知都会触发 在我陷入AlarmManager的混乱之前,我想知道Android是否有一个干净的方法来实现这一点 编辑:什么是UILocalNotification? UILocalNotification实例表示应用

我希望在我的Android应用程序中使用本地通知,我想知道Android是否有类似iOS的
UILocalNotification
可用

我喜欢
UILocalNotification
允许我为将来的某个日期“安排”一个或多个本地通知,并且无论手机处于唤醒或休眠状态(如常规推送通知),这些通知都会触发

在我陷入
AlarmManager
的混乱之前,我想知道Android是否有一个干净的方法来实现这一点

编辑:什么是
UILocalNotification

UILocalNotification实例表示应用程序可以安排在特定日期和时间向其用户显示的通知。操作系统负责在适当的时间发送通知;应用程序不一定要运行才能发生这种情况。虽然本地通知与远程通知类似,因为它们用于显示警报、播放声音和标记应用程序图标,但它们是在本地合成和交付的,不需要与远程服务器连接

  • 基于时间的触发器
考虑到您基于时间的触发要求,
AlarmManager
似乎是合适的解决方案(提供专门的培训)。您应该注意使用,因为当设备关闭时,警报会被清除。因此,当设备重新启动时,您应该重新安排警报。您可以使用清单中声明的BroadcastReceiver解决此问题


(例如,对于基于事件的策略,通知CoreData更改),还有其他可用的方法

也许您可以使用支持库中提供的概念

它被描述为:

助手,用于注册并向进程内的本地对象发送意图广播

我们可以将其用作:

private void sendLocalNotification(){
最终意图=新意图(“myLocalNotificationIdentifier”);
意图。Putetra(“aKey”,aValue);
// ...
LocalBroadcastManager.getInstance(aContext).sendBroadcast(intent);
}
然后,您可以在
活动中注册到给定的通知,例如:

@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
// ...
LocalBroadcastManager.getInstance(this.registerReceiver(mMessageReceiver,newintentFilter(“myLocalNotificationIdentifier”));
}
private BroadcastReceiver mMessageReceiver=新的BroadcastReceiver(){
@凌驾
公共void onReceive(上下文、意图){
//具体的工作,根据意图和它的额外。。。
}
};
否则,您可以使用Apache许可证2.0版下提供的库。 它被描述为

Otto是一个事件总线,设计用于解耦您的系统的不同部分 应用程序,同时仍然允许他们高效地通信

然而,根据您的需求,您可以使用其他Android概念。 例如,如果希望收到数据库更改的通知(在基于ContentProvider概念的项目中),可以使用:

aContentResolver.registerContentObserver(aContentObserver)
使用方法文档

然后,将通过以下调用调用观察者:

aContentResolver.notifyChange(anUri,null)

使用方法文档。

您可能需要更详细地解释什么是
UILocalNotification