notification

NSNotificationCenter

前提是你 提交于 2020-02-25 18:17:16
一个NSNotificationCenter对象(通知中心)提供了在程序中广播消息的机制,它实质上就是一个通知分发表。这个分发表负责维护为各个通知注册的观察者,并在通知到达时,去查找相应的观察者,将通知转发给他们进行处理。 本文主要了整理了一下NSNotificationCenter的使用及需要注意的一些问题,并提出了一些未解决的问题,希望能在此得到解答。 获取通知中心 每个程序都会有一个默认的通知中心。为此,NSNotificationCenter提供了一个类方法来获取这个通知中心: + (NSNotificationCenter *)defaultCenter 获取了这个默认的通知中心对象后,我们就可以使用它来处理通知相关的操作了,包括注册观察者,移除观察者、发送通知等。 通常如果不是出于必要,我们一般都使用这个默认的通知中心,而不自己创建维护一个通知中心。 添加观察者 如果想让对象监听某个通知,则需要在通知中心中将这个对象注册为通知的观察者。早先,NSNotificationCenter提供了以下方法来添加观察者: - (void)addObserver:(id)notificationObserver selector:(SEL)notificationSelector name:(NSString *)notificationName object:(id

烂泥:学习Nagios(二):Nagios配置

我们两清 提交于 2020-02-24 17:46:45
本文由 秀依林枫 提供友情赞助,首发于 烂泥行天下 nagios安装完毕后,我们现在就来配置nagios。有关nagios的安装,可以参考《 烂泥:学习Nagios(一):Nagios安装 》这篇文章。 说明:为了和nagios版本的保持一直,我们在此使用的是nagios最新版nagios-4.1.0rc1。 注意:最新版的nagios可在web页面查看其运行的PID。 一、nagois监控对象 nagios监控的对象比较多,我们可以从颗粒度的不同进行划分,分为笼统对象和详细对象。 1.1 笼统对象 nagios监控的笼统对象可以分为两种类型:网络服务和主机资源。 网络服务包括主机(含网络设备)存活状态、web服务、ftp服务、数据库服务、自定义服务等。 主机资源包括系统负载、当前IP链接数、磁盘空间使用情况、当前进程数、自定义资源等。 1.2 详细对象 nagios监控的详细对象,有以下对象: 网站监控、主流数据库监控、协议监控、操作系统监控、应用监控、应用服务器监控、网络监控、动力环境监控、存储监控、邮件监控、安全监控、日志监控、虚拟化监控。 网站监控主要包括网站、网站应用、网站内容、HTTP、SSL等。 主流数据库监控主要包括MySql、Oracle、DB2、MSSQL等。 协议监控主要包括HTTP、DNS、FTP、SNMP、SMTP、SSH、LDAP、IMAP、POP

NSNotificationCenter 的使用详解

坚强是说给别人听的谎言 提交于 2020-02-11 04:45:20
转载自 http://unmi.cc/nsnotificationcenter-usage ,作者“隔叶黄莺” 通常我们在 iOS 中发生什么事件时该做什么是由 Delegate 实现的,例如 View 加载完后会触发 viewDidLoad。Apple 还为我们提供了另一种通知响应方式,那就是 NSNotification,系统中(UIKeyboardDidShowNotification 等) 以及某些第三方组件(例如 ASIHTTPRequest 的 kReachabilityChangedNotification 等)。 NSNotificationCenter 较之于 Delegate 可以实现更大的跨度的通信机制,可以为两个无引用关系的两个对象进行通信。NSNotificationCenter 的通信原理使用了观察者模式: 1. NSNotificationCenter 注册观察者对某个事件(以字符串命名)感兴趣,及该事件触发时该执行的 Selector 或 Block 2. NSNotificationCenter 在某个时机激发事件(以字符串命名) 3. 观察者在收到感兴趣的事件时,执行相应的 Selector 或 Block 使用 NSNotificationCenter 的步骤示例代码: 1. 定义一个事件到来时该执行的方法: 1 - (void)execute

Windows Phone 7 - 推送通知服务

天大地大妈咪最大 提交于 2020-02-07 04:38:46
Windows Phone 中的 Microsoft Push Notification Service 向第三方开发人员提供了一个弹性,专注,而且持续的渠道,使得开发人员可以从Web Service 向移动应用程序发送信息和更新。 过去移动应用程序需要经常主动访问相应的WEB服务,以了解是否有任何等待处理的通知。这样做是有效的,但会导航手机无线设备频繁打开,从而对 电池续航时间或者用户的流量带来负面 影响。使用推送通知的方式取代主动调查,Web Service 能够提醒应用程序获取所需要的重要理更新。 当一个Web Service 有信息要发送到应用程序,它先发送一个通知到Push Notification Service ,该服务随后将通知应用程序,应用程序的标题明显地更新或者显示一个Toast 通知。然后,如果需要的话,应用程序可以使用自己的的协议联系Web service 以获取更新。 关于推送通知服务,看了Jake Lin 的视频他说的“好莱坞原则”己经说得很清楚了,不过我自己从现实中的淘宝购物也产生了一定的理解,下面跟大家分享一下,给出图示: 如上图,我们可以把推送通知理解成,一部手机就相当于我们一个用 户,在淘宝注册了帐号并填写了送货地址(URI),在购买完自己需要的物品后,通知淘宝商家发货了,这时淘宝商家接收到我们给出的URI,就把货品打包,

windows Phone Push Notification

喜你入骨 提交于 2020-02-06 16:40:35
Push Notification并不是Windows Phone 7.1的新功能,但是之前的文章里对这部分都缺少详细的分析,所以姑且就把Push Notification放到这部分里吧。 很多iOS开发者都将WP7里的Push Notification说成抄袭iOS的产物,孰不知,微软才是Push Notification技术的先行者,Windows Mobile时代的Push Mail技术可以说是独步天下,连Symbian也要授权使用相关的技术。 Push Notification的技术为什么越来越重要,其实这跟移动设备的特点紧密相关,移动设备网络的不稳定性,决定了以Socket为代表的强连接方式并不适用,所以大家更多选择HTTP协议作为主要的通讯方式。但是HTTP的特点是,设备找服务器很容易,通过URL就可以了,但服务器找设备就难上加难了,因为设备会随时切换移动网络,IP地址之类的经常性失效。当然设备端轮询的方式可以解决这个问题,但移动设备的电源、网络都是稀缺资源。所以,OS级别的Push Notification技术就变成了一种珍贵的战略资源,而且,在封闭式的操作系统中,只有OS厂商提供的Push Notification才能够获得最好的效率。 Push Notification简介 目前,Windows Phone支持三种Push Notification方式:Toast

iOS开发中的键盘高度变化处理

て烟熏妆下的殇ゞ 提交于 2020-01-24 21:50:28
- ( void )viewWillDisappear:( BOOL )animated { [[ NSNotificationCenter defaultCenter ] removeObserver : self name : UIKeyboardWillShowNotification object : nil ]; [[ NSNotificationCenter defaultCenter ] removeObserver : self name : UIKeyboardWillHideNotification object : nil ]; } - ( void )viewDidLoad { [ super viewDidLoad ]; [[ NSNotificationCenter defaultCenter ] addObserver : self selector : @selector (keyboardWillShow:) name : UIKeyboardWillShowNotification object : nil ]; [[ NSNotificationCenter defaultCenter ] addObserver : self selector : @selector (keyboardWillHide:) name :

想到啥写啥第一期:Notification消息通知+自定义toast的展示界面

坚强是说给别人听的谎言 提交于 2020-01-22 14:06:19
想到啥写啥第一期:致力于更简单易懂的代码解决我们安卓小白遇到的问题 今天写两个小东西,感觉应该是互不相关的吧,反正随便写啦,代码也不多,Notification+自定义toast的展示界面。 1.notification用于消息通知,就是别人发短信过来的接受消息时候的那种功能 2.自定义toast就广泛多了,玩游戏获取什么奖励时候弹出来的那个一般就是ImageView+TextView 的toast 好了废话不多说,上代码 .java public class MyNotification extends AppCompatActivity { private Notification notification; private Notification.Builder builder; private NotificationManager manager; private Button button; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.toast); button = findViewById(R.id.button); //

XXX正在运行,点按即可了解详情或停止应用

。_饼干妹妹 提交于 2020-01-21 14:12:06
一片文章不仅仅是理论的探讨,更多的是应该对实际问题的解决。 写这篇文字的目的是为了解决一个用户体验的问题,如下描述。 部分手机出现下面图片,影响用户体验 为什么会有如此现象呢? 网友们不停的吐槽,优酷、金山词霸等App都有如此现象,连微信、QQ都曾经有过。 哥们惊呆了,还是深深的挖掘一下吧! void startForeground(int id, Notification notification); 使此服务在前台运行,提供正在进行的服务在此状态下向用户显示的通知。 默认情况下是后台服务,这意味着service在系统回收内存(比如在浏览器里显示大图片)的时候可以被kill掉。如果你比较在意这个service的挂掉,比如像后台音乐播放器这种突然挂了会影响用户的情况,就可以使用ForegroundService来提示用户。 startForeground -> com.android.server.am.ActivityManagerService#setServiceForeground -> com.android.server.am.ActiveServices#setServiceForegroundLocked 在其中先获取对应的ServiceRecord: ServiceRecord r = findServiceLocked(className, token,

Notification的功能与用法

大城市里の小女人 提交于 2020-01-19 12:16:20
Notification是显示在手机状态栏的的通知—手机状态栏位于手机手机屏幕的最上方,哪里一般显示手机当前的网络状态、电池状态、时间等。Notification所代表的是一种具有全局效果的通知,程序一般通过NotificationManager服务发送Notification。 Android为NotiFication增加Notification.Builder类,通过该类允许开发者更轻松地创建Notification对象。Notification.Builder提供了如下常用方法。 setDefaults():设置通知LED灯,音乐,振动等。 setAutoCancel():设置点击通知后,状态栏自动删除通知。 setContentTitle():设置通知标题。 setContentText():设置通知内容。 setSmallIcon():为通知设置图标。 setLargeIcon():为通知设置大图标。 setTick():设置通知栏在状态栏的提示文本。 setContentIntent():设置点击通知后将要启动的程序组件对应的PendingInten。 发送Notification很简单,按如下步骤进行即可。 调用getSystemService(NOTIFICATION_SERVICE)方法获取系统的NotificationManager服务。

Notification在不同版本SDK中的使用

微笑、不失礼 提交于 2020-01-17 09:36:09
今天总结了一下Notification的使用,发现这个控件在版本上有点扯淡。API11和API16两个分水岭,导致菜鸟在学习的时候比较吃力,受影响的外界因素是多样的,其中比较重要的就是你测试的android设备的版本,我刚开始使用的android版本为android4.0.4,我在程序中使用的是API16以上的方法,正好android4.0对应的API为API15,相差了一个版本,导致发出通知的时候程序挂掉。 如果你要兼容低版本的android系统的话(API11以下),建议使用一下方法: NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // 创建一个PendingIntent,和Intent类似,不同的是由于不是马上调用,需要在下拉状态条出发的activity,所以采用的是PendingIntent,即点击Notification跳转启动到哪个Activity PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), 0); // 下面需兼容Android 2.x版本是的处理方式 //