You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android移动开发入门遇到Handler()构造方法废弃问题,求实现指导

问题解决步骤

1、报错原因

Android 11(API Level 30)开始,Handler()无参构造方法被官方废弃,原无参构造会默认绑定当前线程的Looper,存在隐式内存泄漏风险,官方要求必须显式传入指定的Looper对象。

2、具体修改方案

你找到的解决方案完全适用,仅需修改MainActivity.java中的两处代码即可:

第一步:添加Looper依赖导入

在MainActivity的导入区新增一行导入声明:

import android.os.Looper;

第二步:修改Handler初始化代码

找到原有Handler声明行:

private Handler handler = new Handler();

替换为:

private Handler handler = new Handler(Looper.getMainLooper());

3、后续说明

  • 其余所有代码无需修改,handler.postDelayed()、handler.removeCallbacks()等原有方法调用逻辑完全不变,可正常运行。
  • 此处传入Looper.getMainLooper()表示将Handler绑定到安卓主线程,完全符合你播放进度条更新UI的场景需求,修改后废弃警告会直接消失。

额外注意:你当前代码里MediaPlayer设置的数据源是YouTube网页链接,MediaPlayer无法直接解析该链接获取音频流,后续测试播放功能时需要替换为直接指向音频文件的直链地址。

内容的提问来源于stack exchange,提问作者Deyvison Cruz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:36:06