專案需要,這兩天研究了一下service
1、onstartcommand()中
return start_stick
2、onstartcommand()中
startforeground()
3、ondestroy()中
startservice()
4、註冊broadcastreceiver
監聽系統廣播(如
time_tick
)onreceive
中判斷service
是不是還在,不在就重新啟動
service
6、雙程序守護,同時開啟兩個程序,兩個程序中循判斷對方是否還在,不在的話立即啟動對方,最理想的是ndk
用c++
實現linux
的父子程序相互依賴
7、啟動乙個floatingwindow
放在螢幕上(如果不想別人看見,就把視窗寬高設定為
1px*1px)
8、ontrimmemmory()中優化記憶體
9、鬧鐘事件迴圈判斷service是否在執行
這些方法在不同版本的系統中表現情況不同,所以需要自己去測試一下。不過我感覺呢,還是ontrimmemmory()
是最需要花時間學習一下的,記憶體優化,這才是最好的解決方法
service不死之身
為了應用常駐後台,避免被第三方殺掉的方法 1 service設定成start sticky kill 後會被重啟 等待5秒左右 重傳intent,保持與重啟前一樣 2 通過startforeground將程序設定為前台程序 3 做前台服務,優先順序和前台應用乙個級別,除非在系統記憶體非常缺,否則此程...
Android 殺不死的程序
首先,正常下,當我們退出程式或手動殺死後,我們的程式就停止執行了。或者不退出在後台執行時,使用360加速球清理時,也會殺死我們的程序。個人理解360加速時,把不被新增信任的程序用乙個for迴圈,在迴圈裡乙個個的kill。於是有了一種思路,在我們應用中開啟兩個程序,當乙個程序被殺死時,另外乙個程序啟動...
Linux中殺不死的程序
前段時間,一哥們,去殺linux伺服器的程序,發現kill命令失靈了,怎麼殺都殺不死。然後上網查了下資料,原來是要被殺的程序,成為了殭屍程序。殭屍程序的檢視方法 利用命令ps,可以看到有標記為z的程序就是殭屍程序。知道了原因,就想怎麼去把這個殭屍程序乾掉。網上說了兩種方法,一種最簡單的方法,重啟伺服...