java - Runnable 根本不在 fragment 内运行

标签 java android android-fragments runnable

我正在尝试将 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/

相关文章:

java - 使用 Google API Java 客户端上传到 YouTube 时出现问题

android - 如何在单击按钮时刷新 fragment 选项卡内容

android - TabListener、ActionBarSherlock Fragment 和 ListFragment、PageAdapter 的混合?一团糟

Android - 尝试从 Fragment 实现适配器时出现 NullPointerException

java - 如何使用 setExact 设置重复闹钟以及如何取消重复闹钟?

java - 致命信号 11 (SIGSEGV) 位于 0x00000000 (code=1) - PhoneGap

java - 向 Android 电报源代码添加新语言

java - 自动设置内容

Android:没有 Activity 的类中的警报对话框

java - Android、OSC、接收器未接收消息。