0

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

public int func()
{

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

2 回答 2

7

您还可以在 GUI 后面使用AsyncTask进行计算。并使用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
     }
 }
于 2013-06-12T16:40:40.547 回答
1

AndroidAsyncTask为这种事情提供了类。看看,特别是,在onProgressUpdate

于 2013-06-12T16:41:10.683 回答