Строгий режим в Android 2.2

У меня целевой sdk установлен как 3.2, а min sdk как 2.2, как я могу использовать строгий режим в своем приложении, как я понимаю, что он введен, но не могу понять, как начать его использовать.

6 ответов

Решение

Мое предложение состоит из двух частей:

Сначала добавьте некоторый базовый код StrictMode в приложение. onCreate(), Это позволяет вам легко применять StrictMode ко всему вашему приложению (хотя вы можете разместить этот код где угодно для более конкретного тестирования). В документации по StrictMode есть хороший пример кода.

Во-вторых, определите версию SDK, прежде чем пытаться использовать StrictMode. Таким образом, вы используете только StrictMode в API версии 9 или выше - если вы не сделаете эту проверку, вы будете аварийно завершать работу приложения на более старых версиях Android. Вы можете легко определить версию SDK, посмотрев на Build.VERSION.SDK_INT.

При желании вы можете включить StrictMode только во время тестирования. Как вы это сделаете, решать только вам, хотя в прошлом я написал одно решение для этого.

StrictMode.ThreadPolicy был введен с уровня API 9, а политика потоков по умолчанию была изменена с уровня API 11, который, короче говоря, не позволяет работать в сети

(например: HttpClient а также HttpUrlConnection) выполняется в потоке пользовательского интерфейса. Если вы сделаете это, вы получите NetworkOnMainThreadException,

Вы можете легко решить эту ошибку двумя способами:

  1. Рекомендуемый способ решения этой проблемы - использование anAsyncTask так что сетевой запрос не блокирует поток пользовательского интерфейса.

  2. Кроме того, вы можете переопределить эту политику потоков, добавив приведенный ниже код в метод onCreate() вашего основного действия.

if (android.os.Build.VERSION.SDK_INT > 9) {
    StrictMode.ThreadPolicy policy = 
    new StrictMode.ThreadPolicy.Builder().permitAll().build();      
        StrictMode.setThreadPolicy(policy);
 }

Надеюсь, что это полезно для вас..

Это действительно полезно для Как использовать StrictMode в приложении? Проверьте это.. http://mobile.tutsplus.com/tutorials/android/android-sdk_strictmode/

Установите для Манифеста Android что-то вроде этого.

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" android:maxSdkVersion="16"/>

Используйте приведенный ниже код в методе onCreate.

int SDK_INT = android.os.Build.VERSION.SDK_INT;

if (SDK_INT>8){

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

StrictMode.setThreadPolicy(policy); 

}

Примечание. Отключите предупреждение, поскольку вы уже проверяете, какая версия Android будет использовать этот код.

Этот код будет активирован, если версия Android выше Android 2.2

Это помогло решить проблему, проверив уровень API и затем выполнив строгий режим.

Обратитесь к следующей ссылке о том, как его использовать. Установите его на onCreate соответствующего компонента или приложения

Строгий режим

Другие вопросы по тегам