-
服務介紹。
服務是在後台無限期執行且不與使用者互動的應用程式元件。 必須在清單中宣告每個服務。 它可以由 和 啟動。
與任何其他應用程式元件一樣,它執行在程序的主線程上。 這意味著,如果乙個服務需要大量耗時或阻塞的操作,則需要在其子執行緒中實現它(或使用系統提供的 intentservice,該服務繼承自該服務,並使用自己的新執行緒處理資料)。 【當然,也可以在新執行緒中啟動Service,這樣服務就不在主線程中了】。
本地服務在應用程式內部使用。
它可以啟動並執行,直到有人阻止它或它自行停止。 這樣,它以呼叫開始,以呼叫結束。 它可以被呼叫或停止自己。
無論呼叫 startservice() 方法多少次,只需呼叫一次 stopservice() 即可停止服務。
用於實現應用本身的一些耗時任務,如查詢公升級資訊等,並且不占用應用所屬的執行緒進行活動,也不占用應用所屬的執行緒,而是在單個執行緒的後台執行,使使用者體驗更好
遠端服務在 Android 系統內的應用程式之間使用。
它可以通過其自己定義和公開的介面進行程式設計。 客戶端與服務物件建立連線,並通過該連線呼叫服務。 通過呼叫方法呼叫 close 來建立連線。
多個客戶端可以繫結到同乙個服務。 如果此時未載入服務,bindservice() 將首先載入它。
它可以被其他無聊的應用程式復用,例如天氣預報服務,而其他應用程式不需要編寫皇陵之類的服務,只需呼叫現有的
-
由於這兩個服務預設位於同一程序中,因此 kill 命令會直接終止該程序。
解決方案是有兩個程序,每個程式乙個服務,然後註冊網路廣播。
使用廣播來啟動服務,這樣即使服務被終止,也可以重新啟動。
-
我也開過兩個程序,但是不知道對方怎麼啟動,開啟乙個程序一直問對方程序是不是關閉了,檢視原來的帖子”
-
服務 如果你不繫結它開始,如果你不停止,你應該不會輕易被殺死。 但是如果遇到像360這樣的移動助手,他們會直接殺死在後台執行的Serice,這是不可避免的。
至於被終止的服務,您只能開啟程式並重新啟動它。 例如,如果你在後台播放一首歌曲,你清理手機,如果沒有特殊設定,播放歌曲的軟體和服務就會一目了然,你只能重新開啟軟體。
-
盡量不要與系統資源衝突,系統會殺掉閒置的伺服器,監控伺服器的狀態,一旦殺機就重啟伺服器
-
將服務程序設定為白名單,無論是內建的程序清理還是第三方電話管理軟體,都有白名單設定項。
-
編寫乙個 aidl 守護程序,有單獨的服務或多個服務相互監聽,乙個被殺死,另乙個再次啟動。 或者使用系統級廣播,廣播的方式比較開放,讓你想象一下,比如你註冊乙個靜態廣播,你可以聽電池電量廣播,系統每掉電1%就會傳送乙個系統廣播,所以只要電池掉1%,它就會判斷服務是否在執行, 如果它不執行,它會自動啟動,這樣你就可以確保你每隔一次檢查一下,看看你是否需要自己啟動,當然,如果系統每隔一分鐘傳送一次廣播,你也可以利用它,或者其他各種系統級廣播, 你可以使用它,只要你能每隔一段時間監控一下,就可以了
-
目前沒有辦法做到這一點,Android 也不允許你這樣做。
我以為我在公升橋之前有一台機器,看完後我只是重新刷了乙個ROM。 使用刷機大師找到你想要的橋接ROM,它堅持刷機非常方便和安全。