1. Trang chủ
  2. » Giáo án - Bài giảng

Intent, broadcast receiver, service

37 256 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 499,56 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chuyên đề: Phát triển ứng dụng trên môi trường Android Bài 6: Intent, Broadcast Receiver, Service TS..  được sử dụng như một kĩ thuật để truyền thông điệp trong một ứng dụng hay giữa cá

Trang 1

Chuyên đề: Phát triển ứng dụng

trên môi trường Android

Bài 6: Intent, Broadcast Receiver, Service

TS Trần Minh Triết Khoa Công nghệ Thông tin Trường ĐH Khoa học Tự nhiên

Trang 2

 Tài liệu, bài giảng của ThS Nguyễn Trung Hiếu, Trung tâm Tin học trường ĐH Khoa học Tự nhiên, ĐHQG-HCM

 Tài liệu, bài giảng của ThS Bùi Tấn Lộc, Khoa Công nghệ Thông tin, trường ĐH Khoa học Tự nhiên, ĐHQG-HCM

 Website: http://developer.android.com/

Trang 3

 Broadcast Receiver

 Service

Trang 4

 được sử dụng như một kĩ thuật để truyền thông điệp trong một ứng dụng hay giữa các ứng dụng.

 Intents có khả năng:

 Kích hoạt một activity hay service

 Khai báo việc thực hiện một chức năng của activity hay service

 Thông báo một event hay action xảy ra

Trang 5

Khởi động tường minh các activities bằng cách mô tả đối tượng thực hiện.

Khởi động ngầm định các activities bằng cách yêu cầu thực hiện chức năng của activities đó trên dữ liệu cho trước.

 Ngoài ra, Intent dùng để broadcast thông điệp

 Ví dụ: thông báo trạng thái kết nối Internet, trạng thái pin, cuộc gọi đến, nhận tin nhắn…

Trang 7

 Sau khi gọi hàm startActivity (), MyOtherActivity được tạo ra ở trạng thái visible

active

Gọi hàm finish() hay bấm nút back để đóng Activity mới.

Intent intent = new Intent ( MyActivity.this , MyOtherActivity.class );

Trang 8

 Ví dụ: cho phép người dùng gọi điện thoại từ ứng dụng của họ bằng cách yêu cầu

ACTION_DIAL với số điện thoại trong URI

if (muốn gọi điện thoại) {

Intent intent = new Intent ( Intent.ACTION_DIAL , Uri.parse("tel:555-2368" ));

}

Trang 9

 Request code:

 Dùng để xác nhận sub-activity trả về kết quả

 Ví dụ: SHOW_SUBACTIVITY

private static final int SHOW_SUBACTIVITY = 1;

Intent intent = new Intent ( this , MyOtherActivity.class );

Trang 10

 Action: ACTION_PICK

 Request code: PICK_CONTACT_SUBACTIVITY

private static final int PICK_CONTACT_SUBACTIVITY = 2;

Uri uri = Uri parse("content://contacts/people");

Intent intent = new Intent (Intent.ACTION_PICK, uri);

Trang 11

setResult() cần hai tham số:

 Mã kết quả (result code)

Trang 12

Button okButton = ( Button ) findViewById(R.id.ok_button);

okButton.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {

Uri data = Uri.parse("content://horses/" + selected_horse_id);

Intent result = new Intent(null, data);

result.putExtra(I S_INPUT_CORRECT , inputCorrect);

result.putExtra( SELECTED_PISTOL , selectedPistol);

setResult( RESULT_OK , result);

finish();

}

});

Trang 13

Button cancelButton = ( Button ) findViewById(R.id.cancel_button);

cancelButton.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {

setResult( RESULT_CANCELED , null);

finish();

}

});

Trang 14

Khi sub-activity kết thúc, hàm onActivityResult() được gọi trong lớp Activity chính

onActivityResult() handler

 request code

 result code

 data

Trang 16

 ACTION_ANSWER, ACTION_CALL, ACTION_DIAL

 ACTION_DELETE, ACTION_INSERT, ACTION_EDIT

Trang 20

Thực hành : Contact Picker

Trang 21

 Broadcast Receiver

 Service

Trang 22

 Android sử dụng broadcast intent để broadcast các event hệ thống

Trang 23

 Tạo một intent

Intent intent =new Intent("com.hieu.copyToApp");

Gọi hàm sendBroadcast() của Activity

Trang 24

 Để sử dụng BroadcastReceiver, chương trình phải đăng kí trong file manifest hay trong mã nguồn

Broadcast Receiver mới được kế thừa từ class BroadcastReceiver và override hàm

onReceive()

Trang 25

onReceiver() handler phải hoàn tất trong 5s nên broadcast receiver chỉ dùng để cập

Trang 26

 Broadcast chỉ hoạt động trong thời gian onReceive() được gọi, và khi kết thúc hàm này, thì broadcast đã hoàn thành và không còn hoạt động nữa.

 Sự cấp quyền

 Chỉ Broadcast receiver được cung cấp quyền mới có thể nhận những intent gửi đi

Trang 27

 Broadcast Receiver

 Service

Trang 28

không có giao diện như Activity

 Các thành phần ứng dụng khác như Activity, Broadcast Receiver có thể thực thi và điều khiển Service

 Service cho phép một thành phần khác kết nối tương tác với nó hay thực hiện IPC (interprocess communication)

Trang 30

“Started” Service:

Service được gọi khi thành phần của ứng dụng gọi nó bằng phương thức startService(), và service

sẽ chạy vô thời hạn.

 Thực hiện công việc đơn lẻ như download, tính toán và service sẽ dừng một khi công việc hoàn

thành.

“Bound” Service:

Service được gọi khi thành phần của ứng dụng gọi nó bằng phương thức bindService()

 Cung cấp giao diện Client–Server cho phép thành phần ứng dụng tương tác với nó, gửi yêu cầu, lấy

kết quả.

Trang 31

IntentService: Lớp con của Service, là cách tốt nhất nếu không đòi hỏi Service

handle nhiều yêu cầu đồng thời

Trang 33

 startService()

 stopService()

 stopSelf()

Ngày đăng: 02/02/2015, 11:11

TỪ KHÓA LIÊN QUAN

w