我的代码FirstActivity和SecondActivity中有两个活动。
从FirstActivity我启动SecondActivity,请参见下面的代码
Intent intent = new Intent(getBaseContext(), SecondActivity.class);
intent.putExtra("text", "someValue");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
这可以正常工作,我可以读取在FirstActivity中putExtra中添加的SecondActivity中的值。
在SecondActivity中,我有一些复杂的代码,但是在某些地方,我需要启动FirstActivity,并按照以下代码进行操作
Intent intent = new Intent(getBaseContext(), FirstActivity);
Bundle bundle = new Bundle();
/* tested with both bundle and put extra none of them worked
*/
bundle.putString("text2", "someOtherString");
intent.putExtra("text3", "someOtherString");
intent.putExtras(bundle);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
这将启动FirstActivity,但是当我检查代码(在FirstActivity中)
@Override
protected void onStart() {
super.onStart();
Intent intent = getIntent();
if(intent != null) {
String string, string2;
Bundle bundle = intent.getExtras();
if(bundle != null) {
string = bundle.getString("text2"); //return empty
}
string2 = intent.getStringExtra("text3") //returns empty
}
}
我不明白为什么它是空的? 我应该用不同的标志开始活动吗?如果是,请说明原因。
答案 0 :(得分:0)
您需要在secondActivity中使用一个接口,并在firstActivity中对其进行实现。因为您的逻辑从第二到第一是错误的。