如果我必须从外部存储器中读取一个大文件,例如SDCard,我知道我应该在一个单独的线程中执行它,但我的问题是:如果我在主线程上执行此操作,它是否会导致异常类似于“NetworkOnMainThreadException”?
我知道网络异常总是会发生,但我想如果读取时间过长,我会导致异常,或者导致android关闭应用程序......
我问这个是因为我现在无法测试它,因为我的Android设备没有外部存储设备而且我的开发机器是SSD(这会加快速度......)
详细说明:
- 在实际情况中,文件可以大到几GB ......
答案 0 :(得分:1)
如果你使用的是直接文件输入流,那么你不会得到异常,但你可能会得到一个ANR。这允许用户随后终止进程并退出应用程序。
http://developer.android.com/training/articles/perf-anr.html