該應用程序在Android 2.3.5中運行良好 但在Nexus 4(Android 4.2.2)中無法正常工作。爲什麼主要活動在被調用的意圖完成後再次重新啓動(Android 4.2.2)?
應用程序是: 在主要活動的onCreate,它通過意圖調用另一個活動。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Intent launchIntent = new Intent(MainActivity.this, AndroidVideoCapture.class);
launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(launchIntent);
// I add a button dynamically here
}
現在提供的Nexus 4,它完成AndroidVideoCapture的意圖後,它返回到的onCreate,的開頭 「的setContentView(R.layout.activity_main);」。 所以意圖重複一次又一次。
爲什麼?
謝謝!有用!但是我可以知道從Android 2.3.5到4.2.2發生了什麼,所以我們需要添加saveInstanceState? – user1914692 2013-05-07 19:42:07
這可能與更緊密的內存管理有關。 Android 4.2.2自己使用更多的RAM,所以應用程序可用性更低,並且活動被暫停以釋放RAM。 – bclymer 2013-05-07 20:18:33
另外,一般來說,Android不會承諾您的活動在任何時候都不可見時不會被銷燬。因此,即使它有時(或大部分時間)有效,因爲它可能在不同的設備上表現不同,或者如果用戶在內存中具有不同的設置或應用程序,您也不應假定它。 – 2013-05-08 01:45:56