您好,登錄后才能下訂單哦!
第二章 Android四大組件
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();
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類型
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);
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();
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。