快速活动切换崩溃应用程序

时间:2017-11-04 02:56:01

标签: java android exception android-activity

我的应用程序存在问题,当我在各个活动之间快速切换时,我可以使应用程序崩溃。我不确定是什么导致了崩溃。这是用于切换活动的代码。此代码将复制到每个活动(地图,列表和集会)中。

@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按钮时,分配的内存应用程序将降至正常数量。同样,分配的内存保持在正常水平,除非我快速切换类。我完全不知道为什么会发生任何事情。到目前为止,我已经尝试过使用这些答案,但它们似乎对问题没有任何影响。

1 个答案:

答案 0 :(得分:1)

请在创建新意图时指定活动的当前上下文,例如,如果您当前在MainActivity上,那么

Intent intentMap = new Intent(MainActivity.this, Map.class); startActivity(intentMap);
相关问题