android面試/筆試題歸納2

第二波,繼續(xù)繼續(xù),大家多多指教。

題目

  1. 自定義view
  2. service的基礎知識
  3. thread在applicition,activity,service中創(chuàng)建有什么區(qū)別
  4. thread,activity,service之間怎么互相通信
  5. service保活

答案

  1. 自定義view
    自定義view有點深,有點復雜。給幾篇參考文章,大家根據(jù)自己需求回答吧。
    郭霖大神的文章,一共四篇,講得很詳細
    教你搞定Android自定義View
  2. service的基礎知識
    啟動服務有兩種方法,與此對應的就是兩種生命周期。
    通過startService啟動服務。依次調用onCreate -> onStartCommand
    通過stopService關閉服務。調用onDestroy方法。無論之前服務被startService了多少次,都只需要一次stopService就能關閉服務。

通過bindService啟動服務。依次調用onCreate-> onBind
通過unbindService關閉服務。調用onUnbind -> onDestory方法
反復調用bindService不會多次生成Service實例。通過bind綁定的服務,與調用者可以說是綁定在一起,同生共死的。當調用者被銷毀,服務也會立刻終止。

  1. thread在applicition,activity,service中創(chuàng)建有什么區(qū)別
    如果在activity中創(chuàng)建thread,需要在ondestory方法中停止線程。在application和service中也是同理的。
    于是乎在哪里創(chuàng)建thread取決于你希望你的thread存活多久。相比來說,activity中的thread存活的時間最短,activity跳轉時就會結束,application次之,service可以一直在后臺運行,所以存活的時間最長。

  2. 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種方法

  3. service?;?br> 參考自:關于 Android 進程保活,你所需要知道的一切
    怎么讓 Android 程序一直后臺運行,像 QQ 一樣不被殺死?
    1.白,啟動前臺service
    2.灰,利用線程漏洞,不同版本的系統(tǒng)手段不一樣。
    3.黑,監(jiān)聽系統(tǒng)或者其他app的廣播喚醒自己的service
    還有雙service互相監(jiān)聽,聯(lián)系 廠家加入白名單等等等等,總而言之,把app的性能做好,及時釋放內存,才能讓進程存活更久。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容