android面试/笔试题归纳2

作者: thiagooo0 | 来源:发表于2016-07-16 16:04 被阅读243次

    第二波,继续继续,大家多多指教。

    题目

    1. 自定义view
    2. service的基础知识
    3. thread在applicition,activity,service中创建有什么区别
    4. thread,activity,service之间怎么互相通信
    5. service保活

    答案

    1. 自定义view
      自定义view有点深,有点复杂。给几篇参考文章,大家根据自己需求回答吧。
      郭霖大神的文章,一共四篇,讲得很详细
      教你搞定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中创建有什么区别
      如果在activity中创建thread,需要在ondestory方法中停止线程。在application和service中也是同理的。
      于是乎在哪里创建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保活
      参考自:关于 Android 进程保活,你所需要知道的一切
      怎么让 Android 程序一直后台运行,像 QQ 一样不被杀死?
      1.白,启动前台service
      2.灰,利用线程漏洞,不同版本的系统手段不一样。
      3.黑,监听系统或者其他app的广播唤醒自己的service
      还有双service互相监听,联系 厂家加入白名单等等等等,总而言之,把app的性能做好,及时释放内存,才能让进程存活更久。

    相关文章

      网友评论

      • ppyy一号:楼主工作找到了吗?
        thiagooo0:@ppyy一号 没哇눈_눈不然就不用更新了
      • 一息尚存:第三个问题问得和答得真是让人无言以对啊。这问题问得笼统,让人无从答起。这答的嘛,真要这么答,这面试估计得黄。
        thiagooo0:@一息尚存 哈哈。。真的黄了。。我真不知道怎么回答

      本文标题:android面试/笔试题归纳2

      本文链接:https://www.haomeiwen.com/subject/vqhtjttx.html