我有两个活动,A和B.当活性A被第一次启动,它访问Intent传递给它(因为Bundle是null,因为它应该通过在第一时间),并相应地显示信息:
CustInfo m_custInfo;
...
protected void onCreate(Bundle savedInstanceState)
{
...
Bundle bundle = (savedInstanceState == null) ? getIntent().getExtras() : savedInstanceState;
m_custInfo = (CustInfo) m_bundle.getSerializable("CustInfo");
if (m_custInfo != null
...
}
Run Code Online (Sandbox Code Playgroud)
这在第一次通过时工作正常.该EditText控制和ListView正确地填写.
现在,当单击列表中的项目时,将启动活动B以显示详细信息:
m_custInfo = m_arrCustomers.get(pos);
Intent intent = new Intent(A.this, B.class);
intent.putExtra("CustInfo", m_custInfo); // CustInfo is serializable
// printing this intent, it shows to have extras and no flags
startActivityForResult(intent, 1);
Run Code Online (Sandbox Code Playgroud)
在acivity B启动之前,框架调用A被覆盖onSaveInstanceState():
protected void onSaveInstanceState(Bundle outState)
{ …Run Code Online (Sandbox Code Playgroud)