Guy*_*Guy 0 java android runnable android-fragments
我正在尝试将SeekBar连接到片段中的MediaPlayer,但runnable根本没有运行.我在其中放了一个log.i来查看它是否运行但根本没有任何反应.
我将Handler声明为全局变量:
Handler seekHandler;
SeekBar sBar;
Run Code Online (Sandbox Code Playgroud)
然后在onCreateView上:
seekHandler = new Handler();
sBar = (SeekBar) v.findViewById(R.id.seekBar1);
Run Code Online (Sandbox Code Playgroud)
可运行:
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);
}
};
Run Code Online (Sandbox Code Playgroud)
mp变量是一个MediaPlayer.问题是Runnable甚至没有执行过一次.我在活动中的类似应用程序中使用完全相同的代码,它的工作完全正常.这是因为runnables在片段中的行为方式不同吗?此外,我正在使用带有ViewPager和2片段的TabLayout,如果这会影响其中任何一个.
在处理程序再次提交之前,您必须至少运行一次.
从你的班级你应该打电话seekHandler.post(run)
,或run.run();
至少一次.