在Android ViewPager中调用onStop()方法将ExoPlayer实例设置为null的解决方法如下所示:
首先,在ViewPager的Adapter中创建一个方法来释放ExoPlayer实例:
public class MyPagerAdapter extends PagerAdapter {
// ExoPlayer实例
private ExoPlayer exoPlayer;
// ...
// 释放ExoPlayer实例的方法
public void releasePlayer() {
if (exoPlayer != null) {
exoPlayer.release();
exoPlayer = null;
}
}
// ...
}
然后,在ViewPager的父Activity或Fragment的onStop()方法中调用Adapter中的releasePlayer()方法:
public class MainActivity extends AppCompatActivity {
// ViewPager
private ViewPager viewPager;
// PagerAdapter
private MyPagerAdapter pagerAdapter;
// ...
@Override
protected void onStop() {
super.onStop();
pagerAdapter.releasePlayer();
}
// ...
}
这样,当ViewPager所在的Activity或Fragment的onStop()方法被调用时,ExoPlayer实例将被释放,以便在ViewPager不可见时停止播放。