2012-03-06 2 views
16

IntentSender 클래스의 용도가 무엇인지 알고 싶습니다. 우리의 응용 프로그램에서 어떻게 사용합니까?IntentSender의 목적은 무엇입니까?

The Android Intent Based APIs: Part Seven – IntentSenders And PendingIntents을 제외한 좋은 예가 있습니까?

+0

확실히 애플리케이션이 수행하려고하는 작업에 따라 다릅니다. –

+0

@Stev_k : 'IntentSender'에 대한 감사, 모든 코드 예제 및 좋은 가이드 ... –

답변

7

IntentSender는 사용자가 선택기에서 응용 프로그램을 선택하면 방송을 수신

  1. 당신을 수 있습니다 추상화 또는 접착제 클래스의 수준의 일종이다.

    예 당신은 사용할 때 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. 시작 ActivityIntentSender 대신 Intent

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

    startActivity(Intent, Bundle)처럼

    하지만 IntentSender을 복용 시작 (더 Android docs에서) .

+1

답변 해 주셔서 감사합니다. 개발자는 리시버의'onReceive()'메소드에서'(ComponentName) intent.getExtras(). getParcelable (EXTRA_CHOSEN_COMPONENT)'를 사용하여 선택한 애플리케이션 정보 (패키지 이름, etc ...)를 가져올 수 있음을 알게되어 반갑습니다. –

2

IntentSender의 공식 안드로이드 개발자 문서에 명확하게 명시 :이 클래스의

인스턴스가 PendingIntent.getIntentSender()으로 기존 PendingIntent에서 직접 할 수 없습니다, 오히려 작성해야합니다.

코드 샘플 또는 튜토리얼에서이 클래스를 직접 사용하지 않아도됩니다.

PendingIntent은 기본적으로 다른 응용 프로그램에주는 토큰입니다.이 토큰을 사용하면 해당 응용 프로그램이 응용 프로그램의 권한을 사용하여 특정 응용 프로그램 코드를 실행할 수 있습니다.

Here's an examplePendingIntent의 등급으로 사용됩니다.

관련 문제