中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android學習筆記—第二章 Android四大組件

發布時間:2020-06-08 21:10:57 來源:網絡 閱讀:162 作者:lyklykkk 欄目:移動開發

第二章 Android四大組件

  1. Activity(活動窗口):

    Android程序中最基本的模塊,為用戶操作而展示的可視化用戶界面。一個Android應用程序可以只有一個Activity,也可以包含多個Activity,數量及每個Activity的作用取決于應用程序及其設計。

    (1)Activity的生命周期

    創建→運行   onCreate   onStart   onResume

    運行→銷毀   onPause    onStop    onDestory

    運行→停止(不可見  不可操作)  onPause   onStop

    停止→恢復   onRestart  onStart  onResume

    運行→暫停(可見  不可操作) onPause

    暫停→恢復 onResume

    備注:當Activity處于暫停或停止狀態的時候,如果有更高優先級的應用需要內存時,該Activity所在應用可能被銷毀。

    (2)應用舉例:數據持久化

    存:onPause  onStop  onDestory

    取:onCreate  onStart  onResume

    (3)創建一個Activity

    在eclipse項目中,“新建”→“other”→“Android”→“Android Activity”

    (4)啟動Activity

    Intent intent = new Intent(Activity1.this,Activity2.class);

    startActivity(intent);

    (5)關閉Activity

    finish();

  2. Service(服務):沒有界面,運行在后臺

    (1)Service的創建:

    a. 創建一個類繼承Service

    b. 重寫onbind()方法

    c. 清單文件中注冊  android:name="包名.類名"

    (2)啟動服務

    Intent serviceIntent = new Intent(this,MyService.class);

    startService(serviceIntent);

    備注:第一次啟動,會觸發Service的onCreate和onStartCommand方法;如果服務已經存在,則多次點擊啟動服務,只會調用onStartCommand方法。

    (3)停止服務

    stopService(serviceIntent);

    (4)綁定服務

    bindService(serviceIntent,xxx,xxx);

    a. serviceIntent:表示一個Intent對象;

    b. 第二個參數:表示一個ServiceConnection對象,例如:

    ServiceConnection conn =new ServiceConnection;

    c. 第三個參數:Context.BIND_AUTO_CREATE 表示如果服務不存在,會自動創建一個服務。

     (5)解綁服務

    unbindService(conn);

    (5)通過綁定調用Service中的方法

    a. 創建一個類MyBinder繼承Binder

    b. 在該類中添加所需要調用的Service中的方法

    c. 在onBinder()方法中,返回一個MyBinder類型的對象

    d. 在Activity的onServiceConnected()方法中,得到IBinder類型對象

    e. 將IBinder類型對象強轉為MyBinder類型

  3. BroadcastReceiver(廣播接收器)

    (1)廣播:單項、群發,作為Android內部信息傳輸的機制。

    (2)廣播接收器的創建:

    a. 創建一個類MyReceiver繼承BroadcastReceiver;

    b. 重寫onReceive()方法;

    c. 清單文件中注冊

    android:name="包名.類名"

    (3)應用自己發送廣播

    //創建Intent對象

    Intent intent = new Intent();

    //設置過濾條件

    intent.setAction("xxx");

    //發送廣播

    sendBroadcast(intent);

    (4)接收廣播

    a. 在清單文件中注冊廣播

    <intent-filter>

        <action android:name="xxx"/>

    </intent-filter>

    只要條件匹配,就能接收廣播

    b. 在代碼中注冊廣播

    //創建IntentFilter對象

    IntentFilter filter = new IntentFilter();

    //添加過濾條件

    filter.addAction("xxx");

    //創建MyReceiver對象

    MyReceiver receiver = new MyReceiver();

    //注冊廣播

    registerReceiver(filter,receiver);

    //注銷廣播

    unregisterReceiver(receiver);

  4. ContentProvider(數據共享)

    一個用來提供數據共享的組件,主要將一些特定的應用程序數據提供給其他應用程序使用,這些應用程序數據可以存儲于文件系統或者SQLite數據庫中。在Android程序中,共享數據的實現需要繼承自ContentProvider基類,該基類為其他應用程序使用和存儲數據實現了一套標準方法。然而,應用程序并不直接調用這些方法,而是使用一個ContentResolver對象,并通過調用它的方法作為替代。ContentResolver對象提供了query、insert及update等方法,可以對共享數據執行各種操作。

    (1)ContentResolver(內容解析者)示例:讀取系統聯系人

    //創建ContentResolver對象

    ContentResolver resolver = getContentResolver();

    //使用query方法獲取聯系人信息

    Cusor cusor = resolver.query(Phones.CONTENT_URI, null, null, null, null);

    //遍歷聯系人信息

    while(cursor.moveToNext()){

    //根據字段名獲取該字段的索引位置

    int nameIndex = cursor.getColumnIndex(Phones.NAME);

    int numberIndex = cursor.getColumnIndex(Phones.NUMBER);

    //根據索引獲取聯系人信息

    String name = cursor.getString(nameIndex);

    String number = cursor.getString(numberIndex);

    }

    //關閉cursor對象

    cursor.close();

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潍坊市| 明水县| 谢通门县| 阿拉尔市| 修水县| 西华县| 商河县| 阿拉善盟| 绥棱县| 平定县| 察隅县| 上犹县| 平凉市| 萝北县| 万全县| 紫金县| 东丽区| 太仓市| 岳阳县| 理塘县| 堆龙德庆县| 怀集县| 昌平区| 山阴县| 阳城县| 达拉特旗| 大田县| 怀化市| 吉安县| 定远县| 江西省| 盐城市| 涞源县| 阳东县| 东乡县| 武清区| 湖南省| 北安市| 仪陇县| 扶余县| 察哈|