我正在尝试将 SeekBar 连接到 fragment 中的 MediaPlayer,但可运行程序根本没有运行。我在其中放入了一个 log.i 以查看它是否运行,但什么也没发生。
我将 Handler 声明为全局变量:
Handler seekHandler;
SeekBar sBar;
然后在onCreateView中:
seekHandler = new Handler();
sBar = (SeekBar) v.findViewById(R.id.seekBar1);
可运行:
Runnable run = new Runnable() {
@Override
public void run() {
sBar.setMax(mp.getDuration());
sBar.setProgress(mp.getCurrentPosition());
Log.i("TAG", "I'm running");
seekHandler.postDelayed(this, 25);
}
};
mp 变量是一个 MediaPlayer。问题是 Runnable 甚至不执行一次。我在 activity 的类似应用程序中使用完全相同相同的代码,并且工作完全正常。这是因为可运行对象在 fragment 中的行为不同吗?另外,我还将 TabLayout 与 ViewPager 和 2 Fragments 一起使用,如果这会影响其中任何一个。
最佳答案
在处理程序再次提交之前,您必须至少运行一次。
在您的类(class)中,您应该至少调用一次 seekHandler.post(run)
或 run.run();
。
关于java - Runnable 根本不在 fragment 内运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21929529/