我在 LogCat 中收到OutOfMemoryError消息,我的应用程序崩溃了,因为错误未被捕获。
有两件事导致OutOfMemoryError:
1. 将大文本文件读入字符串。
2. 将该字符串发送到我的 TextView。
简单地在这两件事上添加一个 catch 不仅可以捕获OutOfMemoryError,而且似乎可以完全解决内存不足的问题。
LogCat 中不再出现崩溃和错误消息。该应用程序运行完美。
这怎么可能?到底发生了什么?
使用此代码,我收到错误消息和应用程序崩溃:
try
{
myString = new Scanner(new File(myFilePath)).useDelimiter("\\A").next();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
myTextView.setText(myString);
只需“捕获” OutOfMemoryError,LogCat 中就不会再出现错误消息并且不会崩溃:
try
{
myString = new Scanner(new File(myFilePath)).useDelimiter("\\A").next();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch(OutOfMemoryError e)
{
}
try
{
myTextView.setText(myString);
}
catch(OutOfMemoryError e)
{
}