可以使用的AsyncTask,并在每onProgressUpdate设置新的TextView:
protected class InitTask extends AsyncTask<Context, Integer, String>
{
// -- run intensive processes here
// -- notice that the datatype of the first param in the class definition matches the param passed to this method
// -- and that the datatype of the last param in the class definition matches the return type of this method
@Override
protected String doInBackground(Context... params)
{
//-- on every iteration
//-- runs a while loop that causes the thread to sleep for 2 minutes
//-- publishes the progress - calls the onProgressUpdate handler defined below
//-- and increments the counter variable i by one
int i = 0;
while(i <= 50)
{
try{
Thread.sleep(2*60*1000);
publishProgress(i);
i++;
} catch(Exception e){
Log.i("makemachine", e.getMessage());
}
}
return "COMPLETE!";
}
// -- gets called just before thread begins
@Override
protected void onPreExecute()
{
Log.i("makemachine", "onPreExecute()");
super.onPreExecute();
}
// -- called from the publish progress
// -- notice that the datatype of the second param gets passed to this method
@Override
protected void onProgressUpdate(Integer... values)
{
super.onProgressUpdate(values);
Log.i("makemachine", "onProgressUpdate(): " + String.valueOf(values[0]));
_percentField.setText((values[0] * 2) + "%");
_percentField.setTextSize(values[0]);
}
// -- called if the cancel button is pressed
@Override
protected void onCancelled()
{
super.onCancelled();
Log.i("makemachine", "onCancelled()");
_percentField.setText("Cancelled!");
_percentField.setTextColor(0xFFFF0000);
}
// -- called as soon as doInBackground method completes
// -- notice that the third param gets passed to this method
@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
Log.i("makemachine", "onPostExecute(): " + result);
_percentField.setText(result);
_percentField.setTextColor(0xFF69adea);
_cancelButton.setVisibility(View.INVISIBLE);
}
}
谢谢泰德霍普。这工作正常。 – Mano2733 2013-03-10 16:48:30
@ Mano2733 - 如果它解决了您的问题,您可以考虑接受答案。要接受答案,请点击答案左侧的复选标记,将其标记为解决方案。让别人知道什么工作。它也给我们两个小小的声望提升。 :) – 2013-03-10 16:54:52
我已经接受它。 – Mano2733 2013-03-10 16:59:41