0
我遇到了一個與我的應用問題,當我在活動之間快速切換時,我可以使應用崩潰。我不確定導致事故的原因。以下是用於切換活動的代碼。該代碼被複制到每個活動(地圖,列表和拉力賽)中。快速活動切換崩潰應用
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.map:
Intent intentMap = new Intent(this, Map.class);
startActivity(intentMap);
finish();
return (true);
case R.id.list:
Intent intentList = new Intent(this, List.class);
startActivity(intentList);
finish();
return (true);
case R.id.rally:
Intent intentRally = new Intent(this, Rally.class);
startActivity(intentRally);
finish();
return (true);
}
return (super.onOptionsItemSelected(item));
}
當發生崩潰時,我嘗試使用調試器打破所有異常,但它不會拋出任何異常。我正在使用android studio,並且正在用nougat運行的S6 Edge上進行測試。
我該如何去尋找這些崩潰的原因?
編輯:
所以,我終於得到了一個異常打破。原來我有一個OutOfMemoryError。我一直在玩Android Monitor。顯然,我認爲我可能有內存泄漏,但是當我轉儲java堆並使用分析器任務窗口時,它顯示我沒有泄漏。每當我雙擊Initiate GC按鈕,應用程序分配的內存就會降低到正常數量。同樣,分配的內存保持在正常水平,除非我快速在類之間切換。爲什麼會發生任何事情,我完全喪失了信心。到目前爲止,我已經嘗試過使用這些答案,它們似乎對這個問題沒有影響。
,你說這是在某種程度上造成我的問題?因爲每個活動都包含此代碼,所以'CurrentActivity.this'與'this'應該是相同的 – Riko
您也可以使用... Intent intentMap = new Intent(getApplicationContext(),Map.class); –
所有這些代碼行都適用。他們沒有改變我遇到的問題。 – Riko