返回java中函数计算的中间结果

时间:2013-06-12 16:38:18

标签: java android

有可能吗?我的函数中的计算会消耗大量的处理器时间。我必须使用进度条。

public int func()
{

for (int i = 0; i < 10 ; i ++)
{
  return i;//i need 10 returns of this for broadcast or progressbar.
}
}

2 个答案:

答案 0 :(得分:7)

您还可以使用AsyncTask进行GUI后面的计算。并使用onProgressUpdate()发送进度。并使用onPostExecute()发送最终结果。

如果我在android开发示例中集成您的示例,它将看起来像这样。

new DoMyCalculations(1000);    

private class DoMyCalculations extends AsyncTask<Integer, Integer, Integer> {
     protected Long doInBackground(Integer... params) {
         int sum = 0;
         for (int i = 0; i < params; i++) {
             sum += i;
             publishProgress(i);
         }
         return sum;
     }

     protected void onProgressUpdate(Integer... progress) {
         setProgressPercent(progress); //a function in your GUI which shows progress
     }

     protected void onPostExecute(Long result) {
         showDialog("Sum is: " + result);//a function in your GUI which shows results
     }
 }

答案 1 :(得分:1)

Android为此类提供了AsyncTask类。请特别注意onProgressUpdate