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


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

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

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


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

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

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

 

 

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

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

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

在Android中,也有類似iOS的推送系統。但是Android應用的權限比iOS大很多,確實存在有些流氓應用你根本就關不掉他的情況,只能用一些第三方反流氓應用去對付流氓應用。但是,能干的過流氓應用的反流氓應用其實更流氓。。。所謂“流氓會武術,誰也擋不住”。。。
from:https://www.zhihu.com/question/20366585
from:https://www.zhihu.com/question/24938934/answer/79382621


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM