Android面试遇到的小知识

  1. Intent传递数据时,可接受的数据类型是:Serializable、CharSequence、Parcelable、Bundle、Bitmap
  2. 一个组件可以有多个intent过滤器(隐式调用,在xml中activity标签下声明多个标签、一个过滤器(intent-filter)里面只能有一个action,隐式的intent,必须要在过滤器中指定CATEGORY_DEFAULT,原因是:每一个通过 startActivity() 方法发出的隐式 Intent 都至少有一个 category,就是 "android.intent.category.DEFAULT",所以只要是想接收一个隐式 Intent 的 Activity 都应该包括 "android.intent.category.DEFAULT" category,不然将导致 Intent 匹配失败。结论就是:1)一个 Intent 可以有多个 category,但至少会有一个,也是默认的一个 category。
    2)只有 Intent 的所有 category 都匹配上,Activity 才会接收这个 Intent。3)只要满足一个intent-filter就能启动一个activity。史上最全intent-filter匹配规则,没有之一
  3. ANR在各个组件中产生的时间:a.主线程对输入事件5秒内没有处理完毕。(activity)

        b.主线程在执行BroadcastReceiver的onReceive()函数时10秒内没有处理完毕

        c.主线程在Service的各个生命周期函数时20秒内没有处理完毕。

  4. intent的falg标识没有LFAG_ACTIVITY_SINGLE_TASK这个标识。
  5. Activity A 跳转到Activity B时的生命周期:
  6.           1) B完全覆盖A时:A的onPause() > B的onCreate() > B的onStart() > B的onResume() > A的onStop()
               
              当第二个Activity完全起来之后(执行完onResume,才会调用第一个的onStop方法
         2)B不完全覆盖A时:A的onPause() > B的onCreate() > B的onStart() > B的onResume() ,不会调用B的onStop
              

你可能感兴趣的:(面试,android,基础知识)