Tpo*_*6oH 8 android memory-leaks leakcanary
我正在使用以下代码在应用中显示视频VideoActivity:
binding.videoView.setVideoURI(videoUri);
binding.videoView.requestFocus();
binding.videoView.start();
binding.videoView.setOnPreparedListener(new
MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
binding.progressBar.progressOverlay.setVisibility(View.GONE);
}
});
binding.videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
binding.videoView.suspend();
binding.videoView.stopPlayback();
setResult(RESULT_OK);
finish();
}
});
binding.videoSkipButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
binding.videoView.suspend();
binding.videoView.stopPlayback();
setResult(RESULT_OK);
finish();
}
});
Run Code Online (Sandbox Code Playgroud)
如何消除这种泄漏?
我也看到过类似泄漏跟踪的问题:VideoView内存泄漏
但问题在于ButterKnife解除绑定.我需要做类似的事DataBinding吗?
在 Activity 的 onPause()、onResume() 和 onDestroy() 方法中添加 VideoView 的pause()、resume() 和 stopPlayback():
@Override
protected void onResume() {
binding.videoView.resume();
super.onResume();
}
@Override
protected void onPause() {
binding.videoView.pause();
super.onPause();
}
@Override
protected void onDestroy() {
binding.videoView.stopPlayback();
super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)
希望它能帮助你。谢谢 :)
| 归档时间: |
|
| 查看次数: |
600 次 |
| 最近记录: |