我有活动A和B.活动A使用以下代码调用B:
Intent iSettings = new Intent(A.this, B.class);
startActivityForResult(iSettings, ACTIVITY_SAVE_PREF);
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
startActivity(iSettings);
活动B完成并按下具有以下代码的BACK按钮返回活动A:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Bundle bundle = new Bundle();
bundle.putBooleanArray(KEY_PREFERENCES, value);
Intent mIntent = new Intent();
mIntent.putExtras(bundle);
setResult(RESULT_OK, mIntent);
finish();
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
return true;
}
return super.onKeyDown(keyCode, event);
}
我的问题是,活动B刷新到第一个状态,它被活动A在第一个onKeyDown Back
上调用。活动B仅在第二个onKeyDown Back
完成并成功返回活动A.
有人可以帮助我,告诉我,如果我错过了什么吗? 非常感谢提前!
答案 0 :(得分:2)
Intent iSettings = new Intent(A.this, B.class);
startActivityForResult(iSettings, ACTIVITY_SAVE_PREF); //here
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
startActivity(iSettings); // and here
你开始你的活动两次,所以你认为是刷新,只是你关闭第二个活动而第一个活动就在它背后
答案 1 :(得分:0)
你避免使用两个StartActivity ... 只有一个是足够的...因为如果被叫两次......一个活动落后于另一个活动...