2013-02-12 4 views
3

Так что мне нужно было довести уровень моего минимума до 11 для предпочтения (addpreferenceresource был обесценен) - получается, что 9-10 выдает 50% рынка. Поэтому мой вопрос: лучше ли просто подавлять предупреждение, чтобы угодить рынку пряников или есть другой способ сделать ссылку на мои предпочтения без использования фрагментов предпочтений?Лучший способ повысить мой минимальный уровень API?

+1

Почему бы не использовать настройки, обеспечиваемые Eclipse? Активность? И, как сказал @ wtsang02, устаревшее не означает непригодность к использованию. Фактически, вы должны использовать методы «устаревшие из 3.0» в 2.3 <, поскольку там нет фрагментов. –

ответ

4

Я бы реализовал оба типа (тот, который работает в 11+, и тот, который работает в 10-), затем используйте для них условные проверки. Это написано довольно подробно в this answer.

В принципе, вы в конечном итоге создание OtherPreferencesActivity с PreferenceFragment, а затем PreferencesActivity с устаревшей PreferenceActivity. (Ваш APK не сломается, включив в этот устаревший код, до тех пор, пока вы используете проверку версии, так что если/когда он удален в будущем, он не пытается найти его.)

if (Build.VERSION.SDK_INT < 11) { 
    startActivity(new Intent(this, PreferencesActivity.class); 
} else { 
    startActivity(new Intent(this, OtherPreferencesActivity.class); 
} 

Имейте в виду, что вы захотите, чтобы они использовали методы друг друга как можно больше, чтобы вы не дублировали код.

Последний совет: @TargetApi(11) и @SuppressWarnings("deprecation") пригодится здесь. Просто будьте осторожны, что вы не игнорируете другие отклонения, делая это.

0

«обесцененный» не означает, что вы не можете его использовать и разорвут систему, если вы запустите код. Это означает, что его официально не рекомендуется использовать, и этот метод может быть удален из api. В будущем, но мы не знаем, когда. Поэтому я бы сказал, что сейчас это экономить на использовании.

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