我写了一个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
我想实现:当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
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//API大于等于 21 ,才加载MediaSession类
//就在这里面写你有关MediaSession类的操作逻辑
MediaSession a = new MediaSession(MainActivity.this, "myMedia");
...
...
...
}
操作的时候加个synchronized自己把它写成线程安全的不就可以了