认识达内从这里开始

认真做教育 专心促就业

Android常用面试题解析
以下是由达内的金牌讲师们为大家整理的几个常见的面试题,也是大家易犯错误的题,希望对大家学习Android培训能够有所帮助。

1,发现不会再打印相同信息,但多打印了一行onConfigChanged

onSaveInstanceState()à

onPause()à

onStop()à

onDestroy()à

onCreate()à

onStart()à

onRestoreInstanceState()à

onResume()à

onConfigurationChanged()à

7) 把步骤5的android:configChanges=“orientation”改成

android:configChanges=“orientation|keyboradHidden”,执行步骤3,就只打印onConfigChanged

onConfigurationChanged()à

8) 把步骤5的android:configChanges=“orientation”改成

android:configChanges=“orientation|keyboradHidden”,执行步骤4

onConfigurationChanged()à

onConfigurationChanged()à

总结:

1) 不设置activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次。

2) 设置activity的android:configChanges=“orientation”时, 切屏会重新调用各个生命周期,切横屏、竖屏时都只会执行一次,但是竖屏最后多打印一条onConfigurationChanged()

3) 设置activity的android:configChanges=“orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged(),横屏一次,竖屏两次

再总结下整个activity的生命周期:

1) 当前activity产生事件弹出Toast和AlertDialog的时候Activity的生命周期不会有改变

2) Activity运行时按下HOME键(跟被完全覆盖一样的)

onSavaInstanceStateà

onPauseà

onStopà

onRestartà

onStartà

onResumeà

3) 未被完全覆盖,只是失去焦点:

onPauseà

onResumeà

2.如何将打开res aw目录中的数据库文件?

答:在Android中不能直接打开res aw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件。复制的基本方法是使用 getResources().openRawResource方法获得res aw目录中资源的 InputStream对象,然后将该InputStream对象中的数据写入其他的目录中相应文件中。在Android SDK中可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件。

3.activity一般会重载7个方法用来维护其生命周期,除了onCreate(),onStart(),onDestory() 外还有onrestart,onresume,onpause,onstop。

4.在android中,请简述jni的调用过程。

1)安装和下载Cygwin,下载 Android NDK

2)在ndk项目中JNI接口的设计

3)使用C/C++实现本地方法

4)JNI生成动态链接库.so文件

5)将动态链接库复制到java工程,在java工程中调用,运行java工程即可

5.请继承SQLiteOpenHelper实现:

1).创建一个版本为1的“diaryOpenHelper.db”的数据库,

2).同时创建一个 “diary” 表(包含一个_id主键并自增长,topic字符型100

长度, content字符型1000长度)

3).在数据库版本变化时请删除diary表,并重新创建出diary表。

publicclass DBHelper extends SQLiteOpenHelper{

public final static String DATABASENAME ="diaryOpenHelper.db";

public final static int DATABASEVERSION =1;

//创建数据库

public DBHelper(Context context,Stringname,CursorFactory factory,int version)

{

super(context, name, factory,version);

}

//创建表等机构性文件

public void onCreate(SQLiteDatabase db)

{

String sql ="create tablediary"+

"("+

"_idinteger primary key autoincrement,"+

"topicvarchar(100),"+

"contentvarchar(1000)"+

")";

db.execSQL(sql);

}

//若数据库版本有更新,则调用此方法

public void onUpgrade(SQLiteDatabasedb,int oldVersion,int newVersion)

{

String sql = "drop table ifexists diary";

db.execSQL(sql);

this.onCreate(db);

}

}

好了,通过以上达内老师的整理总结,希望对你的Android培训知识有所拓展,多做面试题是成功的一条捷径之一。
<  上一篇:四道经典android问答题推荐
下一篇:Java开发工程师上机笔试题  >
相关推荐
最新资讯
免费试听课程
  • 全部课程
  • IT课程
  • 设计课程
  • 运营课程
Free courses
最新开班时间
  • 北京
  • 上海
  • 广州
  • 深圳
  • 南京
  • 成都
  • 武汉
  • 西安
  • 青岛
  • 天津
  • 杭州
  • 重庆
  • 厦门
  • 哈尔滨
  • 济南
  • 福州
  • 沈阳
  • 合肥
  • 郑州
  • 长春
  • 苏州
  • 大连
  • 长沙
  • 昆明
  • 温州
  • 太原
  • 南昌
  • 无锡
  • 石家庄
  • 南宁
  • 中山
  • 兰州
  • 佛山
  • 珠海
  • 宁波
  • 贵阳
  • 保定
  • 呼和浩特
  • 东莞
  • 洛阳
  • 潍坊
  • 烟台
  • 运城
  • 开课名称
  • 开班时间
  • 抢座
  • 咨询
  • 开课名称
  • 开班时间
  • 抢座
  • 咨询
预约申请试听课