2017-07-04 5 views
0

onReceive()では、新しいインテントを作成して新しいアクティビティを開始したいと思います。活動が終わった後、私は活動のために出発したのと同じ行に戻っていきたいと思います。私はこれを達成するためにBroadcastReceiverクラスを使用できないことを知っています。これはどのように達成できますか?以下はonReceive()コードです:開始アクティビティが完了するまで待つonReceiveを入れてください

final BroadcastReceiver mPairingRequestRecevier = new BroadcastReceiver() 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     if (BluetoothDevice.ACTION_PAIRING_REQUEST.equals(intent.getAction())) 
     { 
      final BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
      int type = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, BluetoothDevice.ERROR); 

      if (type == BluetoothDevice.PAIRING_VARIANT_PIN) 
      { 
       abortBroadcast(); 
       String passkey="hey"; 
       Intent passkeyIntent = new Intent(context.getApplicationContext(),TestActivity.class); 
       passkeyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       passkeyIntent.putExtra("passkey",passkey); 
       context.startActivity(passkeyIntent); 
       Log.d("after returning...",passkey); 

      } 
      else 
      { 
       Log.d("Unexpected pairingtype:" , type+""); 
      } 
     } 
    } 
}; 

これを達成するためのアイデアはありがたいです。

+0

を私が活動のために去ったのと同じ行へ」 - それは不可能です。 'startActivity()'は非同期です。 'startActivity()'が戻るまでに、他のアクティビティを開始するための重要なステップはありません。 'onReceive()'が返され、メインアプリケーションスレッドの制御をフレームワークに返すまで、実際の作業は開始されません。あなたの 'TestActivity'は、あなたが受信機を持つことを検討していた作業を何でもする必要があります。 – CommonsWare

+0

同じ行で何を意味しますか? –

+0

@CommonsWareはいそうです。あなたはそれがどのように達成できるか知っていますか?たぶん私は、正しいクラスまたはメソッド名またはいくつかのフラグが不足しています。お勧めしますか? –

答えて

0

あなたはそれがいくつかのタスクを実行し、以前の活動に、この時 見て結果を返すactivity..make開始する代わりに、startActivityのstartActivityFor結果を使用することができます:私は戻って取得したい、活動が終了した後、」How to manage `startActivityForResult` on Android?

+0

BroadcastReceiveにstartActivityForResult()がありません。 –

+0

@AnkitShubham:正しいですが、あなたの 'BroadcastReceiver'は他のコンポーネントの中にあります。これがアクティビティの場合、このレシーバを含むアクティビティで 'startActivityResult()'を使用できます。 – CommonsWare

+0

@CommonsWare残念ながら、BroadcastReceiverはアクティビティ内にありません。 –

関連する問題