2013-04-29 8 views
11

Androidのドキュメントでは、インテントを「実行する操作の抽象的な記述を含む情報の束」として定義しています。これは、必要に応じて複数のIntentオブジェクトを複数回再利用できるはずであることを示唆していますが、これを示す例は見当たりません。その後、インテントを再利用するのは安全ですか?

private final Intent enableBluetoothIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
... 
protected void onCreate(Bundle savedInstanceState) { 
    enabledBluetoothIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0); 
    ... 
} 

、コード内の複数の場所でstartActivityForResult(enableDiscoverableIntent, REQUEST_ENABLE_BT_DISCOVERY)を呼び出します。次の手順を実行しないように何らかの理由はありますか?同じインテントが2回開始されるとどうなりますか?

+0

「インテント」を再利用する例は何ですか?私はときどき 'Intent'オブジェクトを作成し、どの条件が満たされているかに応じて' Activity'の別の場所で使用することがあります。それがまったく役立つかどうかわからない... – codeMagic

+0

私の例では、ブルートゥースアクセスを要求しています。ブルートゥースアクセスを要求すると、ユーザーにブルートゥースの確認または拒否を求めるポップアップが表示されます。これは、いくつかの異なる場所で発生する可能性があります。インテントを使用して、Bluetoothが正常にオンになったが、後で他の場所でBluetoothがオフになっている場合は、再度リクエストする必要があります。同じオブジェクトを使用すると、同じ要求を送信したいので最もきれいに見えます。 – maria1nes

+0

これは私には合理的だと私は何の問題も表示されません。しかし、いくつかの状況では、 'Intentフラグ'を使って、この 'Intent'からスタックから開始された同様のタスクをクリアする – codeMagic

答えて

7

Intentはデータと命令の束に過ぎないので、まったく同じことを行うには完全に安全です。同じ目的のために同じIntentオブジェクトを使用したい場合(たとえば、タブがたくさんあり、同じ意図を再利用しながらタブを設定しようとしますが、起動するアクティビティを変更するなど)、さらに注意する必要があります。新しいIntentオブジェクトをそれぞれ再作成することをお勧めします。

関連する問題