第二波,繼續(xù)繼續(xù),大家多多指教。
題目
- 自定義view
- service的基礎知識
- thread在applicition,activity,service中創(chuàng)建有什么區(qū)別
- thread,activity,service之間怎么互相通信
- service保活
答案
- 自定義view
自定義view有點深,有點復雜。給幾篇參考文章,大家根據(jù)自己需求回答吧。
郭霖大神的文章,一共四篇,講得很詳細
教你搞定Android自定義View - service的基礎知識
啟動服務有兩種方法,與此對應的就是兩種生命周期。
通過startService啟動服務。依次調用onCreate -> onStartCommand
通過stopService關閉服務。調用onDestroy方法。無論之前服務被startService了多少次,都只需要一次stopService就能關閉服務。
通過bindService啟動服務。依次調用onCreate-> onBind
通過unbindService關閉服務。調用onUnbind -> onDestory方法
反復調用bindService不會多次生成Service實例。通過bind綁定的服務,與調用者可以說是綁定在一起,同生共死的。當調用者被銷毀,服務也會立刻終止。
thread在applicition,activity,service中創(chuàng)建有什么區(qū)別
如果在activity中創(chuàng)建thread,需要在ondestory方法中停止線程。在application和service中也是同理的。
于是乎在哪里創(chuàng)建thread取決于你希望你的thread存活多久。相比來說,activity中的thread存活的時間最短,activity跳轉時就會結束,application次之,service可以一直在后臺運行,所以存活的時間最長。thread,activity,service之間怎么互相通信
activity和service之間:
1.binder對象 2.廣播
activity或service和thread通信:
1.handler 2.AsyncTask 3.Activity.runOnUIThread(Runnable) 4.View.Post(Runnable) 5.View.PostDelayed(Runnabe,long) (想具體學習可以看 Android中UI線程與后臺線程交互設計的5種方法)service?;?br> 參考自:關于 Android 進程保活,你所需要知道的一切
和怎么讓 Android 程序一直后臺運行,像 QQ 一樣不被殺死?
1.白,啟動前臺service
2.灰,利用線程漏洞,不同版本的系統(tǒng)手段不一樣。
3.黑,監(jiān)聽系統(tǒng)或者其他app的廣播喚醒自己的service
還有雙service互相監(jiān)聽,聯(lián)系 廠家加入白名單等等等等,總而言之,把app的性能做好,及時釋放內存,才能讓進程存活更久。