2017-01-31 7 views
1

私のMainActivityには、RSAキーを生成し、それを生成するのにかかった時間がミリ秒単位で返されるThreadがあります。メインアクティビティスレッドを2番目のアクティビティに適用する方法

私はこのThreadを実行している間、アプリは2番目のActivityに移動します。

ミリ秒単位で受信するには、Activityの2番目の番号が必要です。

私が理解しているように、に電話すると、親Activityはスリープ状態になります。だから私はどのように同時に両方を走らせることができますか

ありがとうございます!

+0

から

public class SecondActivity extends AppCompatActivity { private BroadcastReceiver mRsaReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { ArrayList<String> rsaList = intent.getStringArrayListExtra("rsaList"); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); LocalBroadcastManager.getInstance(this).registerReceiver(mRsaReceiver, new IntentFilter("RSA")); } @Override protected void onDestroy() { super.onDestroy(); LocalBroadcastManager.getInstance(this).unregisterReceiver(mRsaReceiver); } 

}

も、あなたのRASキーがあることをリッスン者に通知するために放送受信機を使用してください。感謝! – AnixPasBesoin

+0

ありがとう!私はそれを調べます –

答えて

0

私が理解しているように、startActivity()を実行すると、親アクティビティはスリープ状態になります。どうすれば両方とも同時に実行できますか?

あなたはしません。そしてあなたはする必要はありません。別のスレッドでRSA鍵を生成するので、そのコードは完全にでなければなりません(MainActivityで開始されることを除いて)。だからあなたが知る必要があるのは、あなたのバックグラウンドタスクが完了したときです。そのためには、アプリ内でbroadcastsを使用するか、GreenRobot's EventBusライブラリーのようなイベントバスを使用するか、RxJavaを使用します。

+0

ありがとう!私は放送を調べ始めるでしょう! –

1

LocalBroadcastReceiverを使用できます。あなたのRSAスレッド

Intent rsaIntent = new Intent("RSA"); 
rsaIntent.putExtra("rsaList", rsaArrayList); 
LocalBroadcastManager.getInstance(context).sendBroadcast(rsaIntent); 
関連する問題