我正在尝试解决What to do on TransactionTooLargeException中描述的TransactionTooLargeExeption
我们没有以任何有意义的方式使用onSaveInstanceState
。
启动意图时,我们正在传递额外的数据,这大约是10-20k的数据。
打开活动约30次后,应用程序崩溃。
我正在推测多余的数据会堆积并使应用程序崩溃,并考虑在接收活动中获得多余的数据后再做getIntent().removeExtra("data")
。
这通常是必须删除收到的意图吗?
答案 0 :(得分:0)
这是getExtras()
方法中的Source code
public Bundle getExtras() {
return (mExtras != null)
? new Bundle(mExtras)
: null;
}
如您所见,每次调用getExtras()时,它都会创建数据的副本(如果您的数据太大)
因此,我建议您在收到Extra之后将其删除,以便释放内存,并通过使用removeExtra()
避免此类异常,如前所述。