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 ()因爲是我的老師想要的。