IndexOutOfBoundsException对我没有意义

时间:2013-08-11 05:41:48

标签: android android-activity indexoutofboundsexception

我有一个IndexOutOfBoundsException,但是我用finish()来保护这个调用,它应该退出Android中的Activity!我应该使用else语句吗?

if (mIndex >= mQidList.size()) { 
  closeDB();
  finish();
}
mQidList.get(mIndex);

1 个答案:

答案 0 :(得分:3)

进行以下更改:

if (mIndex >= mQidList.size()) { 
  closeDB();
  finish();

  return;
} 
mQidList.get(mIndex);

当条件变为true时,表示已达到大小限制,因此访问/尝试从任何索引之外获取数据将导致IndexOutOfBoundsException

在你的情况下,当调用finish时,活动被销毁但是代码以自上而下的模式执行,直到通过从被调用的方法返回来删除Stack中的所有方法调用条目,这就是为什么在完成之后,{{1执行会导致此异常。