【问题标题】:Why MediaPlayer does not block UI thread?为什么 MediaPlayer 不阻塞 UI 线程?
【发布时间】:2020-12-28 09:27:05
【问题描述】:

我正在做一些关于Service的测试,我发现当我在Service中执行繁重的任务时,它会阻塞UI线程,但是当我在Service中启动MediaPlayer时它不会阻塞UI线程。

我不知道为什么它没有阻塞 UI 线程。它是在后台线程中运行还是在其他什么地方运行?

【问题讨论】:

    标签: android service android-mediaplayer media-player


    【解决方案1】:

    MediaPlayer 通常不会在后台运行。 请注意,Service 本身在主线程中运行。 Service 可以在没有 UI 的任务中使用,但不应该太长。如果需要执行长任务,则必须使用 Service 内的线程或使用 IntentService。

    【讨论】:

    • "通常 MediaPlayer 不在后台运行" - 你的意思是它在后台线程中运行,对吗?你在哪里读到这个?我搜索了这个,但没有看到任何有用的东西?
    • 您可以从后台线程创建和使用 MediaPlayer。但是要在后台线程上接收回调,该线程必须实现 Looper。如果线程没有 Looper,则会在主(UI)线程上调用回调。
    猜你喜欢
    • 1970-01-01
    • 2021-08-29
    • 2016-06-26
    • 2016-01-11
    • 2011-04-15
    • 2012-04-15
    • 2020-08-06
    • 1970-01-01
    相关资源
    最近更新 更多