管理Android版本:为每个版本

时间:2015-08-04 17:59:11

标签: java android api-versioning

我在我的主要活动中使用这个课程:

public class MediaInfo {
    public String name;
    public String label;
    // ... (other String and int fields)
    public MediaSession mSession;
}
在ArrayList中:

public class MainActivity extends ActionBarActivity implements AsyncResponse {

    private static final String TAG = "MainActivity";

    ArrayList<MediaInfo> myMediaList;
    private Context mContext;

    public void onCreate(Bundle savedInstanceState) {
        // ...
    }

    // ...
}

我遇到的问题是MediaSession是一个属于Android API版本21的类,我正在尝试从版本14开始构建应用程序。

我希望活动(或类)在版本为&lt;时,忽略包含MediaSession类的字段。 21.我遇到的第一个想法是使用抽象类并在版本为&gt; = 21时扩展它,但后来我必须声明不同的ArrayLists,我不知道如何做到这一点。也许这不是最好的方式......

任何想法......?

感谢您的建议

2 个答案:

答案 0 :(得分:0)

  

我遇到的问题是MediaSession是一个属于Android API版本21的类,我正在尝试从版本14开始构建应用程序。

查看Android support library,似乎有一个向后兼容的MediaSession版本,名为MediaSessionCompat

答案 1 :(得分:0)

user3829751的答案看起来很适合这种情况。

对于这个一般性问题,我会引导您回答这个问题:Programmatically obtain the Android API level of a device?

同时检查@TargetApi注释。您可以将“version-21”解压缩到某个方法,并仅在运行时版本21时调用它。您可以在此处查看示例:https://stackoverflow.com/a/18449951/3032209

相关问题