Android Service到底如何優雅的保證服務盡量不被關閉?
01-06
用c代碼 fork一個子進程循環檢查的那個方法 我已經試過了,5.0以上是不行的,而且這個方法 太噁心了。有沒有稍微優雅一點的方法。注意我說的是是盡量,而不是永遠不。
比如bat 滴滴打車等 這些大廠是怎麼做的。另外鄙視一下知乎,在設置裡面 關掉你們的服務 馬上就重啟了。素質太差?是用alarmmanger做的么?我看了一下 無非是下面幾個方案:1.startforeground2.alarmmanger這2種比較好理解和掌握。3.退出應用時 啟動一個一像素的頁面。說實話這個我不太理解 到底是什麼原理,應該如何做?我退出應用的時候 你啟動一個1像素的頁面 只是暫時沒用的啊,當你用戶啟動另外一個app的時候 你這個1像素的頁面不是依舊進入後台了么。 為什麼t家 用這個方案 miui都搞不定他們呢?
4.據說滴滴打車也是用的一像素?5.在設置裡面關掉service 和系統內存不夠時 自動關服務 有什麼區別?
國內的ROM廠商一般會對App的後台做限制,網上公開的Trick在小米華為等手機上基本撐不過三個回合。不是騰訊牛逼,而是廠商會對常用App開白名單,比如微信和手Q這種即時性強的工具類App。原生系統用綠色守護殺掉微信,一樣也是收不到消息的。
ROM常開白名單的還有友盟推送,百度推送等大廠進程。話說以前友盟還是很良心的,多個App集成友盟,同時運行時只會有一個進程,即時性強而且省資源,不過自從被阿里收購以後就不行了……打開任意一個集成了友盟SDK的App都會自動喚醒阿里全家桶。而百度……還是不說了吧……
保證不被殺死的話,除了某些黑科技,似乎是只能想辦法讓你的App進白名單了吧,小廠和個人開發者不用想了,取巧的辦法可以集成友盟推送,然後寫個腳本定時廣播?反正我沒試過。。。我一般是在首頁彈出個對話框提醒用戶在設置中加入白名單恩。。。期待大神們有別的辦法如何優雅地隨地大小便?
作為安卓開發者十分地反對這種行為,如果每個應用都在後台跑殺不死再好的手機不也得卡死?而且電量也會浪費得很厲害。還是真正的多為用戶考慮一下吧。
國內的優雅辦法就是讓用戶給你開白名單,別無他法
保證服務不被殺死,已經不是一個優雅的行為了
耗電增量做到 2mA 以內,然後聯繫 ROM 廠商開白名單,並聯繫手機廠商儘快讓用戶都換上 16G RAM 的手機。
其實90%+的app都沒有services的必要……包括微信之類的IM……(GCM能用的前提
思考這件事請的時候就不要提「優雅」了。在這件事情上,「與BAT斗,其樂無窮」,專搞各種全家桶。實際上MIUI7對系統應用也毫不留情,不該啟動的應用也不允許啟動。如果想在MIUI上喚醒,請接入mi push:小米消息推送服務。但是提前告知,即使接了mi push,如果頻繁推送消息,用戶也可以關閉這個應用的通知欄許可權,是的系統應用也可以關。只要是讓用戶不爽的都統統幹掉。
最優雅的做法就是該關閉的時候老老實實的關閉。沒事凈整這不要臉的主意幹啥玩意兒。
能罵人嗎?
http://gold.xitu.io/entry/5640a72a00b0023ca8f567a7
你們就不能把功能做得吸引人一點?非得耍流氓么?
這是一個很噁心的需求,強烈譴責!對於小白用戶來說,你說的那幾個方法可能讓他殺不掉,但是對於會用的用戶(比如我),root之後切斷相互喚醒並且在鎖屏後自動殺掉白名單以外的應用,很easy的。微信qq是自己加到白名單了,否則他們兩個也是跑不起來的。
安卓手機就是因為有這樣的開發者才越來越卡的!!!!
最近在琢磨系統自帶的賬戶同步,實現AccountSyncAdapter,
這個貌似可以有效保持service的活躍度
集成一個 exploit 裝好應用順便把系統 root 了唄,想常駐常駐,想自起自起,想殺三方殺三方(逃
學習rootkit,將優雅的代碼作為內核模組載入。
我想請問一下,如果我做的是一個天氣APP,有widget,而widget有時鐘的功能,我想我的時鐘能保證正常的更新,我是不是要將更新時間的service常駐呢?要怎麼實現呢?
所有沒有被證明的猜測只能是猜測...
要麼卸載我,要麼讓我白名單,您老看著呢辦吧。
推薦閱讀:
※現在市面上有哪些不錯的安卓手機?
※安卓里很簡單就能做到的事情,在 iOS 里似乎要折騰半天才能做到,為什麼還有這麼多人熱衷於 iOS ?
※如何看待主打加速手機的獵豹移動清理大師被歐洲安全公司AVG列為最影響手機性能和最耗電的十大應用之一?
※請問,國產手機說的全網通能否達到支持境外的主流運營商。?
※怎麼保養安卓手機?