手機應用為什麼明明已經退出,還會收到推送的消息?

是像電腦一樣,應用退出後還會有某些殘留程序未關閉嗎?該如何完全關閉殘留程序?


消息推送不就是做這個事情的嗎?希望通過一條推送消息來提醒用戶不要忘掉這個app(比如你長期不使用),或者告知用戶有更新的內容(如微信來了新消息),由此希望通過push來進一步提升app的活躍度.

當然作為用戶來說,你可以選擇在設置裡面去關掉推送,如果一個app連這個開關都沒有,你可以理直氣壯的卸載這種流氓app.


在iOS中,你收到的推送消息和應用程序是否關閉沒有關係。如果不想收到應用的推送消息,只需要去設置中的通知中,找到這個應用,取消接受他的通知就可以了。

在iOS中的通知系統是蘋果的伺服器發送給iOS設備的,如果你第一次打開應用程序時同意接受通知,那麼蘋果就會在伺服器上註冊這台設備的通知ID,並且應用的伺服器也會收到通知ID。當應用要發通知時,是應用的伺服器發消息給蘋果伺服器,然後蘋果伺服器發消息給設備,跟你的應用是否打開沒關係。

iOS另一種通知是本地通知,也就是不需要伺服器發消息,而是本地根據應用設定好的條件給你發送通知,最常見就是當你幾天沒打開應用,給你一個通知說什麼想你了讓你打開之類的。

在Android中,也有類似iOS的推送系統。但是Android應用的許可權比iOS大很多,確實存在有些流氓應用你根本就關不掉他的情況,只能用一些第三方反流氓應用去對付流氓應用。但是,能幹的過流氓應用的反流氓應用其實更流氓。。。所謂「流氓會武術,誰也擋不住」。。。


拿IOS舉例吧,這是因為「Notification Center",這個是OS中的特性,讓你一直接update中,信息流是不會被中斷和影響的。


對於andriod用戶來說經常有這種困擾,掏出你的手機,進入應用程序管理,殺掉所有應用,然後去泡杯茶,回來再看看你的手機你會神奇地發現,剛剛殺掉的應用很多都自己復活了,一個個的還活蹦亂跳的,時不時給你推送幾條消息。其實andriod應用有幾種復活方式:

監聽系統事件:Android系統有一套廣播機制,當系統發生了某件事的時候,它會通知給需要知道這件事情的所有應用。這套機制對於良心應用來說,就是可以根據系統當前的狀態,給用戶帶來更好體驗。但是,對於某些別有用心的應用,它就利用這套機制,鑽個小空子了,明明用戶已經退出它了,它仍舊把自己喚醒,靜靜地躺在後台。

守護進程喚醒:大部分復活的應用都只學會了第一式,還有另外一種方式就是:很多應用在啟動後,還會創建一個守護進程,就像是最開始的戀愛形式一樣,中間需要有一個媒人的存在,時不時的問問你們相處的怎麼樣了,有沒有什麼矛盾,要是出現了什麼問題,他就給你們解決和協調,挽回你們這段感情。

大部分的復活差不多都是採用的第一種形式,不過不同的消息推送技術還是有所不同,其中關於消息推送做得比較好的有友盟推送,我們app現在就是用的友盟推送,他的穩定性和到達率還是很不錯的。


你把應用軟體的推送功能打開了,你關閉就不會收到了


0 0扯個不沾邊的,Android是時候推出細粒度的DAC了。用戶安裝一個APP,沒必要允許所有的許可權請求吧。連Service都不能直接禁用的真是弱暴了。

ps. 三星用戶不爽後台推送消耗電量、流量的方法:長安home鍵,任務管理器,直接清空RAM。


推送就是說在退出的情況下依然能接到實時更新的消息。除非取消推送功能。


iPhone懸案:

為什麼我把Phone關掉了還是能接到電話呢?

為什麼我把Messages關掉還是會有簡訊呢?

為什麼我把Clock關掉了鬧鐘還是會準時響?

......

Apple的工程師太厲害了!


是的,現在的智能機的大部分app都會在後台有個駐留的進程,主要的功能就是接收伺服器push的消息推給用戶。


推薦閱讀:

App推廣中如何尋找200個以上渠道
哪些科技或產品讓人更好的成為人?
為什麼互聯網人士走在了關注民生和政治的前沿?
360推出的花椒直播應用有多大價值?
移動為何總催促大家去換4G卡?

TAG:iOS | 移動互聯網 | 移動應用 | 蘋果公司AppleInc | Android開發 | Android手機 | Android |