Ich lade Video von Async-Aufgabe. Wenn das Laden des Videos zu lange dauerte, drücken Sie erneut, um abzubrechen.Android Abbrechen Async-Aufgabe, wenn zurück gedrückt
Mein Code hier
public class LiveStreaming extends AppCompatActivity {
VideoView videoView;
private myAsync sync;
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_live_streaming);
String videourl = getIntent().getStringExtra("Link");
videoView = (VideoView) findViewById(R.id.videoStreaming);
progressDialog = ProgressDialog.show(this, "",
"Loading TV...", true);
progressDialog.setCancelable(false);
// progressDialog.dismiss();
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
Uri video = Uri.parse(videourl);// insert video url
videoView.setMediaController(mediaController);
videoView.setVideoURI(video);
videoView.requestFocus();
sync = new myAsync();
sync.execute();
// PlayVideo();
}
private class myAsync extends AsyncTask<Void, Integer, Void> {
int duration = 0;
int current = 0;
private volatile boolean running = true;
@Override
protected void onCancelled() {
running = true;
}
@Override
protected void onPreExecute() {
}
@Override
protected Void doInBackground(Void... params) {
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
progressDialog.dismiss();
videoView.start();
duration = videoView.getDuration();
}
});
do {
current = videoView.getCurrentPosition();
System.out.println("duration - " + duration + " current- "
+ current);
if (sync.isCancelled())
break;
}
while (current != duration || current == 0);
return null;
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
if (sync!=null){
this.finish();
}
}
}
ich meine App korrigiert.
Wenn zurück gedrückt wurde, wurde die Methode nicht aufgerufen. Ich weiß nicht, was das Problem ist
Danke
Verwendung sync.cancel stoppen wollen verwenden möchten Methode, asynchtask zu stoppen –
@ Divyesh Patel Ich habe es bereits verwendet. Mein Problem ist, wenn die Zurück-Taste gedrückt wurde. Die Methode onBackPressed wurde nicht –
genannt, siehe Antwort unten. Upvote, wenn es Ihnen geholfen hat. Danke –