2012-03-06 6 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の代わりに、IntentAndroid docs中より)startActivity(Intent, Bundle)同様

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

    が、起動にIntentSenderを取ると。

+1

あなたの答えをありがとう。開発者が受信者の 'onReceive()'メソッドで '(ComponentName)intent.getExtras()。getParcelable(EXTRA_CHOSEN_COMPONENT)'を使用して、選択したアプリケーション情報(パッケージ名など)を取得できることに気をつけてください。 –

2

IntentSenderのための公式のAndroid開発者ドキュメント明記:このクラスの

インスタンスが直接行うことができないではなく、PendingIntent.getIntentSender()で既存のPendingIntentから作成する必要があります。

コードサンプルまたはチュートリアルでこのクラスが直接使用されることはありません。

PendingIntentは、基本的には別のアプリケーションに与えるトークンで、そのアプリケーションがアプリケーションのコードを実行するためにアプリケーションのアクセス許可を使用できるようにします。クラス内で使用されるPendingIntent

Here's an exampleです。

関連する問題