关于类加载的一个问题

weixin_42004869 2018-08-16 06:34:13
我写了一个app,需要用到MediaSession, 这个类只在Android L及其以上系统才有。
我想实现:当Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLIPOP时,我使用到的MediaSession的类不加载。
我用@RequiresApi(Build.VERSION_CODES.LOLLIPOP)或者@TargetApi(Build.VERSION_CODES.LOLLIPOP)给这个类加了注解,但是没有什么用。
如何才能实现当Android版本低于Android L时,使用到MediaSession的类不加载?谢谢解答!

P.S. 有一个类MediaSessionCompat,它可以在低于Android L的系统下运行,但是它是线程不安全的,刚好我需要线程安全所以就不能使用这个类。所以不考虑MediaSessionCompat
...全文
202 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
江三木洛 2018-08-20
  • 打赏
  • 举报
回复
MediaSessionCompat
操作的时候加个synchronized自己把它写成线程安全的不就可以了
Jing丶無雙 2018-08-17
  • 打赏
  • 举报
回复
不知道你尝试过这样处理没有:
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//API大于等于 21 ,才加载MediaSession类
//就在这里面写你有关MediaSession类的操作逻辑
MediaSession a = new MediaSession(MainActivity.this, "myMedia");
...
...
...
}
weixin_42004869 2018-08-17
  • 打赏
  • 举报
回复
引用 1 楼 xj396282771 的回复:
不知道你尝试过这样处理没有:
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//API大于等于 21 ,才加载MediaSession类
//就在这里面写你有关MediaSession类的操作逻辑
MediaSession a = new MediaSession(MainActivity.this, "myMedia");
...
...
...
}

试过了不行

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧