我有一个IndexOutOfBoundsException,但是我用finish()来保护这个调用,它应该退出Android中的Activity!我应该使用else语句吗?
if (mIndex >= mQidList.size()) {
closeDB();
finish();
}
mQidList.get(mIndex);
答案 0 :(得分:3)
进行以下更改:
if (mIndex >= mQidList.size()) {
closeDB();
finish();
return;
}
mQidList.get(mIndex);
当条件变为true时,表示已达到大小限制,因此访问/尝试从任何索引之外获取数据将导致IndexOutOfBoundsException
。
在你的情况下,当调用finish时,活动被销毁但是代码以自上而下的模式执行,直到通过从被调用的方法返回来删除Stack中的所有方法调用条目,这就是为什么在完成之后,{{1执行会导致此异常。