2012-03-06 49 views
16

Tôi muốn biết mục đích của lớp IntentSender là gì đối với ứng dụng của chúng tôi? Làm thế nào để chúng ta sử dụng nó trong ứng dụng của mình?Mục đích của IntentSender là gì?

Có ví dụ nào hay không, ngoài The Android Intent Based APIs: Part Seven – IntentSenders And PendingIntents?

+0

chắc chắn phụ thuộc vào ứng dụng của bạn đang cố gắng làm gì? –

+0

@Stev_k: cảm ơn, bất kỳ ví dụ mã và hướng dẫn tốt về 'IntentSender' ... –

Trả lời

7

IntentSender là loại một mức độ trừu tượng hoặc lớp keo cho phép bạn

  1. Nhận phát sóng khi người dùng chọn ứng dụng trong trình chọn.

    Ví dụ khi bạn sử dụng IntentSender:

    Intent intent = new Intent(Intent.ACTION_SEND) 
        .putExtra(Intent.EXTRA_TEXT, "This is my text to send.") 
        .setType("text/plain"); 
    Intent receiver = new Intent(this, BroadcastTest.class) 
        .putExtra("test", "test"); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT); 
    Intent chooser = Intent.createChooser(intent, "test", pendingIntent.getIntentSender()); 
    startActivity(chooser); 
    
  2. Bắt đầu Activity với IntentSender thay vì Intent (nhiều hơn trong Android docs)

    startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options)

    Giống như startActivity(Intent, Bundle), nhưng tham gia một IntentSender để bắt đầu .

+1

Cảm ơn câu trả lời của bạn. Thật thú vị khi thông báo rằng nhà phát triển có thể sử dụng '(ComponentName) intent.getExtras(). GetParcelable (EXTRA_CHOSEN_COMPONENT)' trong phương thức 'onReceive()' của người nhận để lấy thông tin ứng dụng đã chọn (tên gói, v.v ...). –

2

Các tài liệu nhà phát triển Android chính thức cho IntentSender nêu rõ:

Thể hiện của lớp này không thể được thực hiện trực tiếp, nhưng thay vì phải được tạo ra từ một hiện PendingIntent với PendingIntent.getIntentSender().

Vì vậy, bạn sẽ (không nên) thấy lớp này đang được sử dụng trực tiếp trong mẫu mã hoặc hướng dẫn.

Đối với một số PendingIntent, về cơ bản nó là mã thông báo mà bạn cấp cho ứng dụng khác cho phép ứng dụng đó sử dụng quyền của ứng dụng để thực thi một đoạn mã ứng dụng cụ thể của bạn.

Here's an example trong số PendingIntent được sử dụng trong một lớp học.

Các vấn đề liên quan