【Android进阶】Android面试题目整理与讲解(一)

这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的增加,如果答案有错误,希望大家可以指正

1.简述Activity的生命周期

当Activity开始启动的时候,首先调用onCreate(),onStart(),onResume()方法,此时Activity对用户来说,是可见的状态

当Activity从可见状态变为被Dialog遮挡的状态的时候,会调用onPause()方法,此时的Activity对用户可见,但是不能相
应用户的点击事件

当Activity从可见状态变为被其他的Activity完全覆盖或者是点击Home进入后台的时候,会依次调用onPause(),onStop()方法,如果在这个期间,系统内存不足,导致Activity被回收的话,还会调用onDestory()方法

当Activity从被Dialog遮挡的状态恢复的时候,会调用onResume()方法,从而恢复可以点击的状态

当Activity从被其他Activity遮挡或者是进入后台状态恢复,而且没有被系统回收的时候,会依次调用onRestart(),onStart(),onResume(),恢复到可以与用户进行交互的状态

当Activity从被其他Activity遮挡或者进入后台,而且被系统回收的时候,相当于重新打开一个Activity,既调用onCreate(),onStart(),onResume()方法,从而可以与用户进行交互

2.Intent启动Activity有几种方式,如何实现?
Intent启动Activity有两种方式,分别为显式意图,隐式意图
第一种,显示意图的实现。
	Intent intent = new Intent(this,OtherActivity.class);
	startActivity(intent);
显式意图还有另外一种形式
	Intent intent = new Intent();
	ComponentName component = new ComponentName(this, OtherActivity.class);
	intent.setComponent(component);
	startActivity(intent);
其实这两种形式其实是一样的,我们看一下Intent构造函数的代码
	public Intent(Context packageContext, Class<?> cls) {
        	mComponent = new ComponentName(packageContext, cls);
    	}
这样我们就一目了然了,其实我们经常使用的Intent的构造方法是第二种方式的简化版
第二种,是隐式意图的实现。
首先我们看一下隐式意图的调用方式
 	Intent intent = new Intent();
	intent.setAction("other");
	startActivity(intent);
隐式意图是通过setAction来进行区分到底跳转到哪一个界面,那么我们肯定要在需要跳转的页面设置一标志,我们需要在AndroidManifest.xml中对这个进行设置

 <activity android:name="com.example.lifecicledemo.OtherActivity" >
            <intent-filter>
                <action android:name="other" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

这样当我们使用setAction的时候,就可以知道我们到底是想跳转到哪一个页面了。


【Android进阶】Android面试题目整理与讲解(一),布布扣,bubuko.com

【Android进阶】Android面试题目整理与讲解(一)

上一篇:如何在扫描完二维码后, 直接用Facebook App进到粉丝专页而不是网页版


下一篇:Android中级第九讲--相机调焦