我的MainActivity
有Thread
生成RSA密钥,并返回生成它们所花费的时间(以毫秒为单位)。
当我运行此Thread
时,应用会转到第二个Activity
。
我需要第二个Activity
以毫秒为单位接收该时间。
据我了解,一旦你致电startActivity()
,父母Activity
就会入睡。那么如何同时运行两个?
谢谢!
答案 0 :(得分:1)
您可以使用LocalBroadcastReceiver。
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);
}
}
来自你的rsa线程
Intent rsaIntent = new Intent("RSA");
rsaIntent.putExtra("rsaList", rsaArrayList);
LocalBroadcastManager.getInstance(context).sendBroadcast(rsaIntent);
答案 1 :(得分:0)
据我了解,一旦你启动了Activity(),父活动就会进入休眠状态。那么如何同时运行
你没有。你不需要。由于您在单独的线程上生成RSA密钥,因此代码应完全独立于您的活动(除了在MainActivity
中启动)。因此,您需要知道的是,当您的后台任务完成时 - 您可以使用应用内broadcasts或使用GreenRobot's EventBus库等事件总线或使用RxJava。