题型1:请列出Android四大组件:

答:Activity,Service,BroadcastReceiver,Provider

题型2:请描述下Activity的生命周期

答:7个生命周期 onCreate-onStart-onResume-onPause-onRestart-onStop-onDestroy;

解析:

题型3:Android常用的五种布局?

答:流布局,帧布局,相对布局,表格布局,绝对布局

分析:四大布局就去掉绝对布局

题型4:注册广播的几种方式,有何优缺点?

答:1)第一种不是常驻型广播,也就是说广播跟随activity的生命周期。注意: 在activity结束前,移除广播接收器。(代码动态注册)

//生成广播接受者类的实例
<pre name="code" class="java">SmsBroadCastReceiver smsBroadCastReceiver = new SmsBroadCastReceiver();
//实例化过滤器并设置要过滤的广播
IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); //注册广播   (Activity的方法)
registerReceiver(smsBroadCastReceiver, intentFilter);   

2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。(在AndroidManifest中注册)

<!--广播注册-->  <receiver android:name=".SmsBroadCastReceiver">  <intent-filter android:priority="20">  <action android:name="android.provider.Telephony.SMS_RECEIVED"/>  </intent-filter>  </receiver>  

题型5:Andorid引入广播机制的用意

答:

同一app内部的同一组件内的消息通信(单个或多个线程之间);

同一app内部的不同组件之间的消息通信(单个进程);

同一app具有多个进程的不同组件之间的消息通信;

不同app之间的组件之间消息通信;

Android系统在特定情况下与App之间的消息通信。

从实现原理看上,Android中的广播使用了观察者模式,基于消息的发布/订阅事件模型。因此,从实现的角度来看,Android中的广播将广播的发送者和接受者极大程度上解耦,使得系统能够方便集成,更易扩展。

题型6:什么是Service以及描述一下它的生命周期

答:Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件。其他应用组件能够启动Service,并且当用户切换到另外的应用场景,Service将持续在后台运行。  Service有两种状态,“启动的”和“绑定”。

onCreate-onStartCommand-(onBind-onRebind-onUnbind-onRebind)-onDestroy

解析:

1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。

2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。

3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。

4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。

5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。

6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。

7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

题型7:Activity怎么和Service绑定

首先,在Activity端,首先写个类继承ServiceConnection,用它来获取service实例,然后生成一个intent里面放activity的class和service的class,然后用bindService方法进行绑定;

<span>
<span class="keyword">private</span><span> Service1 myservice = </span><span class="keyword">null</span><span>;</span><span class="comment">//被绑定的service对象</span><span>
</span></span>
//先生成一个内部类,用于获取service实例
public ServiceConnection conn= new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
myservice = null;
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
myservice = ((Service1.MyBinder)service).getService();
}
};
//开始绑定  Intent intent = new Intent(Activity1.this,Service1.class);  bindService(intent, conn, Context.BIND_AUTO_CREATE);  

在Service端,首先写个类继承iBinder,里面必须些getService方法,把本service返回,然后在onBind方法里吧这个自定义类返回

  private final IBinder binder = new MyBinder();  @Override  public IBinder onBind(Intent intent) {  return binder;  }  /** * 该类是获得Service对象 * @author Administrator * */  public class MyBinder extends Binder{  public Service1 getService(){  return Service1.this;  }  }  

题型8:如何启动service

1.  在同一个应用任何地方调用 startService() 方法就能启动 Service 了,然后系统会回调 Service 类的 onCreate() 以及 onStart() 方法。这样启动的 Service 会一直运行在后台,直到 Context.stopService() 或者 selfStop() 方法被调用。另外如果一个 Service 已经被启动,其他代码再试图调用 startService() 方法,是不会执行 onCreate() 的,但会重新执行一次 onStart() 。

2. 另外一种 bindService() 方法的意思是,把这个 Service 和调用 Service 的客户类绑起来,如果调用这个客户类被销毁,Service 也会被销毁。用这个方法的一个好处是,bindService() 方法执行后 Service 会回调上边提到的 onBind() 方发,你可以从这里返回一个实现了 IBind 接口的类,在客户端操作这个类就能和这个服务通信了,比如得到 Service 运行的状态或其他操作。如果 Service 还没有运行,使用这个方法启动 Service 就会 onCreate() 方法而不会调用 onStart()。

Android四大组件易考题分析相关推荐

  1. Android四大组件总结

    四大组件系列文章 Activity总结和补充:Activity总结和补充_fdsafwagdagadg6576的博客-CSDN博客 Android Binder&Aidl理解和补充:Andro ...

  2. Android四大组件之bindService源码实现详解

        Android四大组件之bindService源码实现详解 Android四大组件源码实现详解系列博客目录: Android应用进程创建流程大揭秘 Android四大组件之bindServic ...

  3. Android 四大组件之——Acitivity(一)

    一,什么是Activity activity是Android组件中最基本也是最为常见用的四大组件之一.Android四大组件有Activity,Service服务,Content Provider内容 ...

  4. Android四大组件---BroadcastReceiver

    前言: BroadcastReceiver(广播接收器),属于 Android 四大组件之一 在 Android 开发中,BroadcastReceiver 的应用场景非常多 今天,我将详细讲解关于B ...

  5. Android添加手机黑名单,手机来电拦截实现详解与Demo,一个不错的练手项目,涵盖Android四大组件。

    简介 这是一个小应用的详解,这个应用可以添加手机黑名单,拦截手机黑名单的来电.通过这个小demo,我们可以对Android四大组件的应用场景有个具体的了解,可以说是一个不错的练手项目. 下面给出下载地 ...

  6. Android 四大组件通信核心

    前言 系列文章: Android Activity创建到View的显示过程 Android 四大组件通信核心 Android 系统启动到App 界面完全展示终于明白(图文版) 我们知道Android ...

  7. 使用Drozer对Android四大组件进行测试

    使用Drozer对Android四大组件进行测试 一.介绍 Drozer是一款安卓的安全测试框架,可以用来对安卓应用进行渗透测试,工作方式为交互式,有点类似于MSF,可以选择模块和payload对风险 ...

  8. Kotlin第七章: Android四大组件

    1. 四大组件 四大组件是每一个Android人必须要会,要掌握的知识点,因为他们是我们在日常开发工作中打交道最频繁的组件,而且他们四个在不同的领域扮演着极其重要的角色. Activity: 负责用户 ...

  9. android进阶(九)-----Android四大组件的工作过程

    一.四大组件的运行状态 android四大组件中国除了BroadcastReceiver以外,其他三种都必须在AndroidManifest中注册,对于BroadcastReceiver既可以在And ...

最新文章

  1. F - Count the Colors - zoj 1610(区间覆盖)
  2. oracle如何自动分析报告,ORACLE 性能分析报告的获取
  3. WINCE--VS2005不能连接连线调试
  4. 20165301第十周课下补做
  5. java.io.IOException cannot be resolved
  6. pojo类无法注入service解决示例
  7. react全局方法_前端面试题 ---react
  8. Java基础学习记录
  9. 我的世界服务器怎么注册密码1.9,我的世界1.9.x /1.10服务器BEST CRAFT(最佳工艺服务器)...
  10. OwinStartup不触发
  11. Tomcat 优化和性能监测
  12. Response.Redirect导致session丢失的解决办法
  13. 前端培训丁鹿学堂:nodeJS入门指南(一)
  14. 基于对立非洲秃鹫优化算法求解单目标优化问题(OAVOA)含Matlab代码
  15. 泥瓦匠聊并发编程基础篇:线程中断和终止
  16. android 10.0 wifi开关控制
  17. 晏几道 天涯 青砚1989
  18. 研究生联系导师需要注意什么
  19. warning:suggest parentheses around assignment used as truth value
  20. Mac/Win上运行Switch游戏(亲测可用)

热门文章

  1. ionic实现搜索框过滤关键字高亮
  2. java datetime类型_datetime对应java什么类型
  3. Python 程序设计结构
  4. git push 404 not found问题
  5. 月亮网摘(2006.08.25)
  6. Git | 面试官问你 Git 原理,你能回答得出来吗?
  7. git恢复被删除的远程分支
  8. 终于解决!图片随鼠标移动在FireFox下实现,另附一个好玩的图片随鼠标伸缩效果
  9. C语言学习:剪切板UNICODE码使用
  10. 77种javascript特效全功略(包含日期等什么的)