基础知识介绍,掌握这套精编Android高级面试题解析

(3).stopped.

(4).killed/shut down.

5.使用Bundle在Activity间传递数据:

  1. Android程序中的两种Intent:

(1).Activity Action Intents:调用程序之外Activities的intent,只有一个Activity可以处理这种Intent,如打开浏览器。

(2).Broadcast Intents:发送给多个Activity处理的Intent。

7.直接Intent和间接Intent:

(1).直接Intent:指定了component属性的Intent,通过指定具体的组件类,通知应用程序启动对应的组件。

使用setComponent(组件名);或者setClass(context, class)方法来指定Intent的组件属性。

(2).间接Intent:没有指定component属性的Intent,系统根据查找以注册在Android Manifest.xml清单文件中所有的IntentFilter
及其中定义的Intent来找到匹配的Intent。

8.Intent的属性:

Intent解析主要依赖Intent的action(动作)、type(类型)、category(类别)这三个属性来进行判断:

(1).action:Intent要执行的动作。

(2).type:Intent的数据类型。

(3).category:被执行动作的附加信息。

(4).extras:附加信息,用于Intent在Activity之间传递数据。

  1. Intent Receiver和Intent Filter:

(1).Intent Receiver用于处理外部事件:

当Android应用程序需要对外部事件处理时,需要使用Broadcast Intent Receiver,需要在Android的Mainfest.xml清单文件中声明,或者使用context.registerReceiver()来注册Intent Receiver。程序并不会因为BroadcastReceiver被呼叫而被执行,而是当BroadcastReceiver被触发时系统会依据需求来执行相应的程序。

程序可以使用context.sendBroadcast()来发出自己的Intent Broadcast给其他程序。

(2). Intent Filter用于描述Activity:

当Intent 要求做某些事情时,Intent Filter被用来描述该Activity能够接收什么样的Intent,Intent Filter都会在Android的Mainfest.xml清单文件中声明。

10.Resolving Intent:

Android应用程序的画面切换是由resolving intent来实现的,正在运行的Activity可以使用start Activity(myContext)来实现启动另一个Activity。使用Resolving Intent的两个好处:

(1).让Activities可以很容易利用Intent方式去使用别的程序功能。

(2).Activities可以很容易的在任何情况下由新的Activities所取代。

11.Service的使用:

(1).方法1:

a. 启动服务:context.StartService();可以传递参数。

b. 结束服务:context.stopService();

(2).方法2:

a.启动服务:context.bindService();

b.结束服务:context.unbindService();

注意:两种方法可以混合使用。

12.两种Service使用方法的区别:

(1).使用startService()启动服务后,即使调用启动服务的进程结束了,服务仍然存在,直到有进程调用stopService停止服务,或者服务自己自杀(service.stopSelf())。

(2).使用bindService()启动服务后,服务就和调用bindService()的进程同生共死了,当调用bindService()的进程结束了,服务也就跟着结束了,期间也可以调用unbindService()结束服务。

(3).当两种方式混合使用时,比如通过startService()启动服务后,又使用了bindService(),那么只有同时使用stopService()和unbindService()才能结束该服务。

13.Service的进程特性:

(1).Android系统会尝试保留那些启动了或者绑定了服务的进程。

(2).如果服务在进程的onCreate(),onStart(),或者onDestory()方法中执行时,那么主进程将会变成一个前台进程,以确保此代码不会被停止。

(3).如果服务以及开始,那么它的主进程会就重要性而言低于所有看见进程但高于不可见进程。

(4).如果多个客户端绑定了服务,只要有一个客户端对于用户是可见的,即认为该服务是可见的。

14.Android的重要进程:

(1).前台进程:当前用户活动需要的,如在屏幕上运行的活动。

(2).可视化进程:活动是可觉察的,但是不是在前台,如暂停,如在前台对话框之后的以前活动。

(3).服务进程:处理一项服务,不直接可视(可觉察)。

(4).后台进程:处理当前不可觉察活动,如停止。可在回收内存的任何时候结束。

(5).空进程:处理没活动的应用程序组件。

15.Android应用程序生命周期:

(1).每个Android程序运行在它自己的Linux内核之上。

(2).程序不直接控制进程的生命周期。

(3).程序的生命周期由系统决定,取决于正在运行程序的重要性、可用内存等。

(4).后台进程:处理当前不可觉察活动,如停止。可在回收内存的任何时候结束。

(5).空进程:处理没活动的应用程序组件。

15.Android应用程序生命周期:

(1).每个Android程序运行在它自己的Linux内核之上。

(2).程序不直接控制进程的生命周期。

(3).程序的生命周期由系统决定,取决于正在运行程序的重要性、可用内存等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值