我有一个 IndexOutOfBoundsException,但我正在使用 finish() 保护调用,它应该退出 Android 中的 Activity!我应该使用 else 语句吗?
if (mIndex >= mQidList.size()) {
closeDB();
finish();
}
mQidList.get(mIndex);
我有一个 IndexOutOfBoundsException,但我正在使用 finish() 保护调用,它应该退出 Android 中的 Activity!我应该使用 else 语句吗?
if (mIndex >= mQidList.size()) {
closeDB();
finish();
}
mQidList.get(mIndex);
进行以下更改:
if (mIndex >= mQidList.size()) {
closeDB();
finish();
return;
}
mQidList.get(mIndex);
当条件为真时,这意味着已达到大小限制,因此访问/尝试从超出该限制的任何索引中获取数据将导致IndexOutOfBoundsException
.
在您的情况下,当调用完成时,活动被破坏,但代码以自上而下的模式执行,直到通过从被调用的方法返回来删除堆栈中的所有方法调用条目,这就是为什么在完成后mQidList.get(mIndex);
执行导致此异常.