Runnable完全不在片段内运行

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,如果这会影响其中任何一个.

Bla*_*elt 5

在处理程序再次提交之前,您必须至少运行一次.

从你的班级你应该打电话seekHandler.post(run),或run.run();至少一次.

  • 完善.应该解决问题 (2认同)