<i id='bfjepm8k'><tr id='jdc5th2h'><dt id='jsjhx63l'><q id='jksi2uqk'><span id='2cf00lxr'><b id='acg38yyr'><form id='bop3vnlt'><ins id='4lufat4l'></ins><ul id='wund1zho'></ul><sub id='77kpavme'></sub></form><legend id='4eb5aqtn'></legend><bdo id='vhlael6w'><pre id='hd28dcu0'><center id='yyrndewn'></center></pre></bdo></b><th id='ktmo0n6i'></th></span></q></dt></tr></i><div id='qs8wy06f'><tfoot id='r0omfr4z'></tfoot><dl id='dtmyv136'><fieldset id='msx8imp1'></fieldset></dl></div>

<small id='ib028l4z'></small><noframes id='xdw3ol0k'>

    <tbody id='hozwakc7'></tbody>

      <legend id='p03rvvu4'><style id='wg90yptt'><dir id='r50t56tx'><q id='sbtuhvc3'></q></dir></style></legend>
    1. <tfoot id='irnn415p'></tfoot>
    2. 网站建设公司当前位置 : 网站建设公司 > 知识普及

      移动开发——安卓开发面试必备的基础知识(一)

      发布时间:2022-03-04 17:02   浏览次数:次   
       一、关于Activity
             关于Activity必须要了解的内容有:Activity的生命周期、android任务栈、Activity启动模式、scheme跳转协议。
       
             1.1  什么是Activity
       
                    Activity是应用与用户交互的接口,它提供了一个界面让用户进行点击、滑动等操作
       
              1.2 activity生命周期
       
                    通用的生命周期图就不贴了,网上都能找到
       
                    共7种函数
       
                    Activity启动-->onCreate()-->onStart()-->onResume()             onResume()方法执行后可以进行交互
       
                    Activity不可见时(如点击home)-->onPause()-->onStop()
       
                    再次回到Activity时,-->onRestart()-->onStart()-->onResume()     onRestart()方法是在Activity由不可见变为可见时执行
       
                    退出Activity时onPause()-->onStop()-->onDestroy()        onDestroy()方法中可做资源的回收与释放
       
                    知识点:android进程优先级       前台>可见>服务>后台>空
       
              1.3 activity启动模式
       
                    共4种
       
                     标准:standard
       
                     栈顶:singletop
       
                     栈内:singletask
       
                     全局:singleinstance
       
              1.4 scheme跳转协议
       
                     通过注册scheme可在App页面内跳转,从H5页面跳转到App,从一个App跳转到另一个App
       
       
       
             二、关于Fragment
             关于Fragment必须要了解的内容有:Fragment的生命周期、Fragment之间的通信、Fragment管理器
       
                     Fragment相比Activity更节省内存,UI切换更舒适
       
                     动态添加Fragment
       
              FragmentManager fragmentManager = getSupportFragmentManager();
              FragmentTransaction transaction = fragmentManager.beginTransaction();
       
              RightFragment rightFragment = new RightFragment();
              transaction.add(R.id.id_fragment_right,rightFragment,"rightFragment");
       
              transaction.commit();
                     FragmentPagerAdapter与FragmentStatePagerAdapter的区别
       
             由于FragmentPagerAdapter在destroyItem时使用detach方法将Fragment的UI与Activity的UI脱离,而FragmentStatePagerAdapter在destroyItem时使用remove方法将Fragment内存回收,所以,FragmentStatePagerAdapter更适合fragment较多的情况
       
              2.1 Fragment的生命周期
       
                   共有11种函数,在fragment的view创建之后,在onPause之前,activity的周期是先于它运行的,自onPause之后,fragment的周期的先于activity运行的。
       
       
       
              2.2 Fragment通信(需要代码实践)
       
                     2.2.1  在Fragment中调用Activity的方法  getActivity
       
                     2.2.2  在Activity中调用Fragment的方法  接口回调
       
                     2.2.3  在Fragment中调用Fragment的方法  findFragmentById
       
                     Fragment常用方法:replace(),add(),remove()
       
       
       
             三、关于Service
                      Service(服务)是一种可以在后台执行长时间运行操作而没有用户界面的应用组件
       
                      Service是运行在主线程中的,所以不能进行耗时操作
       
                      Service生命周期,先上图
       
       
       
                      启动服务的生命周期:onCreate()、onStartCommand()、onDestory()
       
       
       
                      绑定服务的生命周期:onCreate()、onBind()、onUnbind()、onDestory()
       
                      但是要注意的是onBind()只被执行一次,可以绑定已经启动的服务
       
              3.1 Service启动方式
       
                      startService()
       
                      步骤:定义一个类继承Service,注册Service,使用Context的startService(Intent)方法启动。
       
                      bindService()
       
                      步骤:创建BindService服务端继承自Service,在类中实现IBinder接口的实例对象并tigong公共方法给客户端调用,从onBind()回调方法返回此Binder实例,在客户端中,从onServiceConnected()回调方法接收Binder,并使用提供的方法调用绑定服务
       
       
       
             四、关于BroadcastReceiver
                      BroadcastReceiver是一种广泛运用的在应用程序之间传输信息的机制,android中广播内容是一个Intent,可以携带要发送的数据
       
                      广播种类:normal  Broadcast;system Broadcast;local Broadcast
       
                      其它知识点:
       
                      Binder是一种通信机制,通常用于跨进程通信
       
                      AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言,主要用于多进程并发的进程间通信
       
    3. <small id='5rb6dn7t'></small><noframes id='agp6lvnz'>

        <legend id='pd1y9znj'><style id='5li76cx0'><dir id='slqbfvxq'><q id='2rxe5u26'></q></dir></style></legend>

        <tfoot id='xu5xcqj4'></tfoot>
        <i id='jlh4wrxa'><tr id='7mwwi3ix'><dt id='srezunq3'><q id='9td5rq3y'><span id='bpwvb499'><b id='fm52dow7'><form id='6rm75ojd'><ins id='lokqsq82'></ins><ul id='iwvx812k'></ul><sub id='fuctsep4'></sub></form><legend id='qf9aixrd'></legend><bdo id='v43x48ds'><pre id='iyccxrj8'><center id='ts10ecyc'></center></pre></bdo></b><th id='hxsbcrdj'></th></span></q></dt></tr></i><div id='84nh5sa7'><tfoot id='8ffqkh30'></tfoot><dl id='4g2t9gr8'><fieldset id='sxez3z9y'></fieldset></dl></div>

            <tbody id='9t22iwhr'></tbody>

            本文来源于网络,若有侵权请联系3449817223#qq.com,将在第一时间删除。

                <i id='1jql1f5m'><tr id='sw48be6o'><dt id='ywg5nlmn'><q id='fqr3dejn'><span id='4ggtj67f'><b id='gnx8288r'><form id='hvglrrak'><ins id='w3c6s31o'></ins><ul id='muxz9324'></ul><sub id='mh93gu37'></sub></form><legend id='uevva1uz'></legend><bdo id='91ln9fue'><pre id='yhlom0ka'><center id='in9vxs9o'></center></pre></bdo></b><th id='zz7l8eyr'></th></span></q></dt></tr></i><div id='w4u40mtk'><tfoot id='qry27x66'></tfoot><dl id='9x7bwlal'><fieldset id='ptzoo8ea'></fieldset></dl></div>

                <small id='bhsbvltp'></small><noframes id='vfqiok6w'>

              • <legend id='bklc2acm'><style id='0glqtvhp'><dir id='bnjvwzd2'><q id='sueox7jv'></q></dir></style></legend>

                  <tbody id='obfhc1ro'></tbody>
                <tfoot id='hckvzpws'></tfoot>