日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UILocalNotification详解

發布時間:2023/12/15 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UILocalNotification详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Notification是智能手機應用編程中非常常用的一種傳遞信息的機制,而且可以非常好的節省資源,不用消耗資源來不停地檢查信息狀態(Pooling),在iOS下應用分為兩種不同的Notification種類,本地和遠程。本地的Notification由iOS下NotificationManager統一管理,只需要將封裝好的本地Notification對象加入到系統Notification管理機制隊列中,系統會在指定的時間激發將本地Notification,應用只需設計好處理Notification的方法就完成了整個Notification流程了。

本地Notification所使用的對象是UILocalNotificationUILocalNotification的屬性涵蓋了所有處理Notification需要的內容。UILocalNotification的屬性有fireDate、timeZone、repeatInterval、repeatCalendar、alertBody、alertAction、hasAction、alertLaunchImage、applicationIconBadgeNumber、soundName和userInfo。


UILocalNotification的調度

其中fireDate、timeZone、repeatInterval和repeatCalendar是用于UILocalNotification的調度。fireDate是UILocalNotification的激發的確切時間。timeZone是UILocalNotification激發時間是否根據時區改變而改變,如果設置為nil的話,那么UILocalNotification將在一段時候后被激發,而不是某一個確切時間被激發。repeatInterval是UILocalNotification被重復激發之間的時間差,不過時間差是完全根據日歷單位(NSCalendarUnit)的,例如每周激發的單位,NSWeekCalendarUnit,如果不設置的話,將不會重復激發。repeatCalendar是UILocalNotification重復激發所使用的日歷單位需要參考的日歷,如果不設置的話,系統默認的日歷將被作為參考日歷。

UILocalNotification的提醒內容

alertBody、alertAction、hasAction和alertLaunchImage是當應用不在運行時,系統處理

?

UILocalNotification提醒是需要的內容。alertBody是一串現實提醒內容的字符串(NSString),如果alertBody未設置的話,Notification被激發時將不現實提醒。alertAction也是一串字符(NSString),alertAction的內容將作為提醒中動作按鈕上的文字,如果未設置的話,提醒信息中的動作按鈕將顯示為“View”相對文字形式。alertLaunchImage是在用戶點擊提醒框中動作按鈕(“View”)時,等待應用加載時顯示的圖片,這個將替代應用原本設置的加載圖片。hasAction是一個控制是否在提醒框中顯示動作按鈕的布爾值,默認值為YES。


?

UILocalNotification的其他部分

applicationIconBadgeNumber、soundName和userInfo將使UILocalNotification更完整。applicationIconBadgeNumber是顯示在應用圖標右上角的數字,這樣讓用戶直接了解到應用需要處理的Notification。soundName是另一個UILocalNotification用來提醒用戶的手段,在Notification被激發之后將播放這段聲音來提醒用戶有Notification需要處理,如果不設soundName的話,Notification被激發是將不會有聲音播放,除去應用特制的聲音以外,也可以將soundName設為UILocalNotificationDefaultSoundName來使用系統默認提醒聲音。userInfo是Notification用來傳遞數據的NSDictionary。


登記UILocalNotification

在設置完UILocalNotification對象之后,應用需要在系統Notification處理隊列中登記已設置完的UILocalNotification對象。登記UILocalNotification * localNotification的方式為:

?? [[UIApplication sharedApplication] ?scheduleLocalNotification:localNotification];

在有些時候,應用可能需要直接激發一個Notification而不是等一段時間在激發,應用可以以下的方式直接觸發已設好的Notification:

???[[UIApplication sharedApplication] presentLocalNotificationNow:localNotification];

處理UILocalNotification

在提醒框動作按鈕被點擊后,應用開始運行時,可以在-(BOOL)application:didFinishLaunchingWithOptions:這個Application delegate方法中處理。可以通過以下方式來加載為最近未處理的Notification:

?? UILocalNotification * localNotif=[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];

如果應用正在運行時,可以通過覆蓋在Application Delegate中的方法-(void)application:didReceiveLocalNotification:來處理Notification。作為方法的第二個參數為UILocalNotification對象,只需處理對象攜帶的userInfo來處理響應的動作。

取消UILocalNotification

可以使用以下兩個方式來取消一個已經登記的Notification,第一個方式可以直接取消一個指定的Notification,第二個方式將會把該應用已登記的Notification一起取消

?? [[UIApplication sharedApplication] cancelLocalNotification:localNotification];

?? [[UIApplication sharedApplication] cancelAllLocalNotification];

總結

本地Notification的機制在應用開發中非常有效,可以很好的幫助開發者管理一些指定時間需要發生的事件,例如鬧鐘類的應用。而且因為系統統一對Notification的管理,讓同樣的任務可以非常簡單得被處理,而無需讓應用浪費資源去等待事件的觸發。

總結

以上是生活随笔為你收集整理的UILocalNotification详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。