我需要应用程序等到计数器完成其工作,以便它可以返回完整的值数组,以便下一个函数可以使用它而不是“null”与其他方法相反是可行的,但遗憾的是这不是一个选择。 String[] rows; parser.beginParsing(file); String[] firstRow = parser.parseNext(); while ((rows = parser.parseNext()) != null) { String lastRow = rows[0]; content = rows; data.add(content); Double[] points = new Double[data.size()]; for (int i = 0; i < data.size(); i++) { rows = data.get(i); points[i] = new Double(Double.parseDouble(rows[1])); } XYSeries dataSeries = new SimpleXYSeries(Arrays.asList(points), SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, "Series1"); SampledXYSeries sampledSeries = new SampledXYSeries(dataSeries, OrderedXYSeries.XOrder.ASCENDING, 2,10); lineFormatter = new FastLineAndPointRenderer.Formatter(LINE_COLOUR, null, null); csvPlot.addSeries(sampledSeries, lineFormatter); } 我希望线程等待计数器完成,因此“点”将包含实际解析的数据。现在它返回“null”并调用 sampledSeries 会使应用程序崩溃。
1 回答
www说
TA贡献1775条经验 获得超8个赞
如果您只需要特定秒数的计数器,则可以使用以下代码段发布可运行文件
// Fill your array here
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// work to be done after 6000 msec
Toast.makeText(MainActivity.this, "6 sec passed", Toast.LENGTH_SHORT).show();
}
},6000); // time in msec
但是我相信您需要另一种方法,例如AsyncTask或AsnycTaskLoader,这是因为在大多数情况下,当您想在其他事情之后做某事时;您实际上不知道第一个操作何时结束,或者您的数组何时将完全被数据占用;如果您需要帮助,请告诉我。
添加回答
举报
0/150
提交
取消