2015-05-25 1 views
0

я получил предупреждение об этом заявлении:editor.commit (API 1) vs. editor.apply (API 9). Что делать?

editor.commit();

AS 1.1.0 предлагает использовать .apply() вместо, так как он работает в фоновом режиме, в то время как .commit() сразу пишет.

Но apply требует API 9 и выше; commit был вокруг навсегда.

Я склонен НЕ делать изменения, так как у меня есть только несколько предпочтений.

Кроме того, что произойдет, если apply будет выполнен на старом устройстве?

+1

Ну, в соответствии с Android [dashboards] (https://developer.android.com/about/dashboards/index.html?utm_source=suzunone) уровень API уровня 9 охватывает 99,7% устройств. – LukaCiko

+0

Что произойдет, если 'apply' будет выполнен по API 8 или меньше? – DSlomer64

ответ

1

Но применять требует API 9 и выше

В настоящее время, ~99.7% of Android devices accessing the Play Store are running API Level 10 or higher.

Я склонен НЕ совершать изменения, поскольку у меня есть только несколько предпочтений.

Затем заверните вызов commit() в свой собственный поток, чтобы выполнить ввод/вывод на фоновом потоке.

Что произойдет, если применение будет выполнено на более старом устройстве?

Если compileSdkVersion 9 или выше, и ваш minSdkVersion ниже 9, и вы используете apply(), инструменты разработки должны указать вам, что это ошибка. Если вы упорствуете, вы потерпите крах, возможно, с VerifyError.