<rp id="yy9qd"></rp>

    <em id="yy9qd"><ruby id="yy9qd"></ruby></em>

      <rp id="yy9qd"><object id="yy9qd"></object></rp>

    1. <th id="yy9qd"></th>

      ?

      Android常用面試題解析

      作者:達內 更新時間:2014-06-13 15:09 來源:未知 點擊:
      以下是由達內的金牌講師們為大家整理的幾個常見的面試題,也是大家易犯錯誤的題,希望對大家學習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培訓知識有所拓展,多做面試題是成功的一條捷徑之一。

    2. 上一篇:沒有了
    3. 下一篇:達內準備的Android面試小測
    4. 相關閱讀

      最新開班信息

      3G-Android軟件工程師就業班
      北京潘家園中心 開課日期:9月29日
      3G-Android軟件工程師就業班
      北京潘家園中心 開課日期:9月29日
      3G-Android軟件工程師周末班
      北京潘家園中心 開課日期:9月29日
      3G-Android軟件工程師周末班
      北京潘家園中心 開課日期:9月29日