有可能吗?我的函数中的计算会消耗大量的处理器时间。我必须使用进度条。
public int func()
{
for (int i = 0; i < 10 ; i ++)
{
return i;//i need 10 returns of this for broadcast or progressbar.
}
}
答案 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
。