2012-06-04 2 views
3

Теперь я продвигаюсь в разработке моего андроидного приложения с 15 функциями, которое основано на новейшем API (15 ICS). Теперь я обнаружил, что основные функционалисты приложения не обладает обратной совместимостью даже с андроид v4 поддержки, такие как:Методы обратной совместимости Android

1-fragmentTransaction анимация 2-Способность к putStringSet в sharedPref 3-имеющие mapActivity с использованием фрагментов

Я подумал о том, чтобы сделать вторую версию для более старой ОС класса EACH, у которой есть проблемы несовместимости (около 10), поэтому я использую их, если обнаруживаю, что устройство, использующее приложение, устарело. Тем не менее, я уверен, что это глупо, и есть лучший способ сделать это.

Что является лучшим способом, чтобы сделать код совместимым с API 7 и выше, не выходя из особенностей, предусмотренных выше API-интерфейсы (по крайней мере, будут использоваться для новых устройств)

+0

Даже я хотел бы знать его ответ, когда я столкнулся с такой проблемой, я разработал другое приложение для более низкой версии. Но я думаю, что все в порядке, потому что его легко обрабатывать как более низкую, так и более высокую версию отдельно. – Shrikant

+0

@ Krishnabhadra, хороший звонок. Я только что принял некоторые ответы (ставка по-прежнему низкая, потому что другие на самом деле не отвечали на мои вопросы) – AlAsiri

ответ

0

Вы можете проверить уровень API в Android во время выполнения и включить необходимые функции в соответствии с уровнем API.

Что-то вроде ниже.

int currentapiVersion = android.os.Build.VERSION.SDK_INT; 
if (currentapiVersion >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH){ 
// Do something for ICS and above versions 
} else{ 
// do something for phones running an SDK before ICS 
} 

Кроме того, вы можете добавить версии спецификатора в папку ресурсов, такие как вытяжка-v15 (воля вводимого коэффициент пикапов, если уровень устройства API является 15)

Проверить это LINK для получения дополнительной информации о том, как указать необходимые квалификаторы для ресурсов

с этой последней доступной функциональностью будет включен при запуске на последних устройствах прошивки, а обратная совместимость включена в противном случае.

+0

Спасибо за ответ Sudhaker, Я знаю об обнаружении времени выполнения, но мои изменения в том, что я объявляю целый класс. например, если <10, то я расширяю TabActivity Else Я расширяю фрагмент. – AlAsiri

+0

Спасибо за отличную информацию. Я знаю о возможности обнаружения версии во время выполнения, но мне нужно изменить способ объявления классов соответственно, что не является чем-то, я думаю, я могу изменить код (кроме создания другой версии классов). Например, если API <10 расширяет TabActivity Else extends Fragment – AlAsiri

+0

Вы можете создать операцию запуска перенаправления, где он проверит текущую версию SDK, на которой работает устройство, и запустит соответствующую целевую активность во время выполнения в соответствии с требованиями. (не пробовал, хотя). – Sudhaker

 Смежные вопросы

  • Нет связанных вопросов^_^