单线程上的并发问题?

时间:2013-11-17 04:48:33

标签: java android concurrency indexoutofboundsexception

我有一段代码可以向ArrayList添加第二个条目,另一个代码可以获取更新。这大部分时间都有效,但每隔一段时间我就得到一个IndexOutOfBOundsException,表明索引没有用第二个值更新。测试很简单,我只是按下相同的按钮一次,并且在任意数量的按下之后,程序崩溃。

片段中包含的以下两部分相互调用:

这会在arraylist中添加一个项目:

if ( mTaskPaused == false ) {
    mTask.timeStamp ();
}

此后,直接调用,从arraylist获取第二个(有时不存在的)项目:

LocalDateTime end = mTask.getTimestamps ().get ( 1 );

这里到底发生了什么?

1 个答案:

答案 0 :(得分:0)

if(mTask.getTimestamps().count()>=1)
{
LocalDateTime end = mTask.getTimestamps ().get (1);
}
else
{
    //Do the handling here for Arrays with only single entry.
}

我希望这会有所帮助。要获得正确的解决方案,您需要发布完整的代码。