在我的應用程序中,Activity1啓動Activity2與「startActivityForResult()」。完成()在一個活動關閉應用程序,然後簡要顯示以前的應用程序
當活性2完成後,下面的代碼被稱爲:
Activity2.java
private void finishActivity(final boolean accepted)
{
Intent returnIntent = new Intent();
setResult(accepted ? RESULT_OK : RESULT_CANCELED, returnIntent);
finish();
}
活性1收到這個回調,如果結果不RESULT_OK,它也完成。
Activity1.java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == Globals.REQUEST_CODE_TOS)
{
if (resultCode != RESULT_OK)
finish();
}
}
活動1完成的應用程序關閉,如預期後。
的問題 -
然而,我的應用程序關閉後,而不是去到主屏幕,在棧簡要以前的應用程序啓動前,則也關閉!然後我進入主屏幕。
在Android bug跟蹤系統,我看到的是按後退按鈕時的情況列出了類似的錯誤,我相信這是與調用完成():
https://code.google.com/p/android/issues/detail?id=71067
我在運行4.4.4的Nexus 5上看到這一點。
這只是一個錯誤?還是有任何行爲的解決方法?
編輯 -
爲了澄清我想要的行爲:
在谷歌地圖,如果你拒絕TOS彈出,應用程序關閉,並直接進入主屏幕。有一些以前打開的應用程序沒有尷尬的閃光。
可能是一個系統錯誤... – StoneBird 2014-11-06 17:26:24
「堆棧上的前一個應用程序暫時啓動,然後關閉!」什麼是'以前的申請'?你的意思是Activity2? – 2014-11-06 17:32:32
@MarcinS。不,我的意思是以前的應用程序 - 例如,在我的頂級活動中調用finish()後,Play Store會短暫彈出並彈出,最後將我帶到主屏幕。 – Alchete 2014-11-06 17:38:19