0
我做一些练习,我需要一些帮助。ANDROID - 法里面的AsyncTask用按钮来启动和取消
我有2个按钮,1个启动方法和其他取消。此方法调用Tarea并返回Long(值)。我必须让一个AsyncTask运行这个方法,并在TOAST取消或结束时返回。
public class Actividad1 extends Activity {
Long valor = Long.MIN_VALUE;
private AsyncTask tarea = new AsyncTask<Void, Void, Long>(){
@Override
protected Long doInBackground(Void... params) {
return valor;
}
@Override
protected void onPostExecute(Long result) {
Toast toast = Toast.makeText(Actividad1.this, "Valor: " + valor, Toast.LENGTH_LONG);
toast.show();
super.onPostExecute(result);
}
@Override
protected void onCancelled() {
Toast toast = Toast.makeText(Actividad1.this, "Valor: " + valor, Toast.LENGTH_LONG);
toast.show();
super.onCancelled();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_actividad1);
}
public void clickBotonEjecutar (View view){
Tarea(tarea);
tarea.execute();
}
public void clickBotonCancelar (View view){
tarea.cancel(true);
}
public Long Tarea(AsyncTask tarea) {
Long valor = Long.MIN_VALUE;
while (! tarea.isCancelled() && valor <= Long.MAX_VALUE) {
System.out.println("Se está ejecutando…" + valor);
try {Thread.sleep(1000);} catch (InterruptedException e) {}
valor ++;
}
return valor;
}
}
代码必须在这种格式,一个叫公共龙 利亚(的AsyncTask利亚)方法,并与私人的AsyncTask利亚=新 的AsyncTask ()因为是我的老师想要的。