Android API и методы, которые зависят от версии - PullRequest
2 голосов
/ 05 марта 2012

Я работаю над проектом, который изначально был разработан для Honeycomb; мы хотим сделать его совместимым с 2.3.3. Я делаю это путем преобразования копии исходного проекта в проект библиотеки, включая эту библиотеку, в несколько новых проектов и создания подклассов некоторых элементов в новых проектах для использования определенных API.

Однако у нас есть много подклассов AsyncTask<...>; AsyncTask<...> существует в 2.3.3, но метод onCancelled(), который мы реализуем, существует только с Honeycomb. Я обеспокоен тем, что если я оставлю эти классы в проекте центральной библиотеки, метод onCancelled() не будет задействован, потому что (эффективно) он был построен на основе библиотеки Android 2.3.3, в которой его нет. Тем не менее, я не хочу воспроизводить эти классы в каждом подпроекте без веской причины, и я не вижу, как подклассы могли бы сделать что-то лучше: суперкласс все равно будет против версии 2.3.3 AsyncTask<...>. Мой вопрос: разрешает ли это Java / Android, и будет ли onCancelled() попадать в более высокие версии Android?

1 Ответ

0 голосов
/ 06 марта 2012

Вы можете использовать несколько APK.Один для уровня сота и более поздних API, другой для предыдущих уровней API. В противном случае следует использовать пакет совместимости, но этот пакет не поддерживает все API.Для поддержки нескольких APK: http://developer.android.com/guide/market/publishing/multiple-apks.html

...