【发布时间】:2017-11-04 02:56:00
【问题描述】:
我的应用程序出现问题,当我在活动之间快速切换时,我可能会导致应用程序崩溃。我不确定是什么导致了崩溃。这是用于切换活动的代码。此代码被复制到每个活动(地图、列表和拉力赛)中。
@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,并且正在运行在牛轧糖中的 S6 Edge 上进行测试。
我怎样才能找到这些崩溃的原因?
编辑:
所以我终于得到了一个例外来打破。事实证明我遇到了 OutOfMemoryError。我一直在玩 Android Monitor。显然,我假设我可能有内存泄漏,但是当我转储 Java 堆并使用分析器任务窗口时,它显示我没有泄漏。每当我双击 Initiate GC 按钮时,应用程序分配的内存就会下降到正常数量。同样,分配的内存保持在正常水平,除非我在类之间快速切换。我完全不知道为什么会发生任何事情。到目前为止,我已经尝试过使用答案,它们似乎对问题没有影响。
【问题讨论】:
标签: java android exception android-activity