java - intent.getBooleanExtra 导致 java.lang.OutOfMemoryError
问题描述
我遇到了一个intent.getBooleanExtra
触发OutOfMemoryError
异常的问题。
崩溃发生在 Android 5.0 手机 (Asus ZenFone 2 ZE551ML) 上,其可用 RAM 超过 1GB,可用磁盘空间超过 6GB。
崩溃堆栈:
Fatal Exception: java.lang.OutOfMemoryError: int[] of length 2015679692 would overflow
at android.util.ArrayMap.allocArrays(ArrayMap.java:198)
at android.util.ArrayMap.ensureCapacity(ArrayMap.java:309)
at android.os.BaseBundle.unparcel(BaseBundle.java:219)
at android.os.BaseBundle.getBoolean(BaseBundle.java:658)
at android.os.Bundle.getBoolean(Bundle.java:603)
at android.content.Intent.getBooleanExtra(Intent.java:4781)
at MyClass.onActivityCreated(MyClass.java:33)
我的代码看起来像:
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
Intent intent = activity.getIntent();
if (intent != null && !intent.getBooleanExtra(ActionIntent.MYCONSTANT, false)) {
....
}
}
知道为什么我会因为getBooleanExtra
通话和超过 1GB 的可用 RAM 而崩溃吗?
解决方案
推荐阅读
- preact - Preact doesn't show the value inside the list tag
- javascript - 根据主下拉菜单选择有条件地显示或隐藏辅助 Twitter-Bootstrap 下拉菜单
- java - Specifying the owner of a unidirectional @OneToOne JPA mapping
- android - 在firebase admin go客户端中设置notification_priority
- wordpress - 为什么在我将旧网站迁移到本地计算机后,wordpress 会将我重定向到旧网站?
- java - Java.sql.SQLNonTransientConnectionException error when running a JSP file in netbeans
- reactjs - React TS 获取共享组件的道具
- java - 回滚所有以前的休眠事务
- predicate - 选择排序的程序正确性、不变量和谓词逻辑
- docker - 如何创建一个独立于官方 docker 镜像的依赖 docker 容器?