У меня есть целевой набор sdk как 3.2 и min sdk как 2.2, как я могу использовать strictmode в своем приложении, так как я понимаю, что он введен, но не может понять, как начать использовать его.
Строгий режим в Android 2.2
Ответ 1
Мое предложение два раза:
Сначала добавьте базовый код StrictMode к вашему Application onCreate()
. Это позволяет легко применять StrictMode к вашему приложению (хотя вы можете поместить этот код в любом месте для более конкретного тестирования). Там хороший образец кода в документах StrictMode.
Во-вторых, определите версию SDK перед тем, как попытаться использовать StrictMode. Таким образом, вы используете StrictMode только в версиях API 9 или выше - если вы не сделаете эту проверку, вы повредите приложение на более ранних версиях Android. Вы можете легко обнаружить версию SDK, посмотрев Build.VERSION.SDK_INT.
При необходимости вы можете включить только StrictMode при тестировании. Как вы это делаете, но Я написал одно решение для этого в прошлом.
Ответ 2
StrictMode.ThreadPolicy
был введен с тех пор, как API-уровень 9 и политика потоков по умолчанию были изменены с уровня API 11, что, вкратце, не разрешает работу в сети
(например: HttpClient
и HttpUrlConnection
) выполняются в потоке пользовательского интерфейса. Если вы сделаете это, вы получите NetworkOnMainThreadException
.
Вы можете легко решить эту ошибку двумя способами: -
-
Рекомендуемый способ решения этого вопроса - использовать
anAsyncTask
so что сетевой запрос не блокирует поток пользовательского интерфейса. -
Кроме того, вы можете переопределить эту политику потоков, добавив ниже кода в свой основной метод onCreate().
if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); }
Надеюсь, это полезно для вас.
Ответ 3
Установите Android Manifest на что-то вроде этого.
<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
Ответ 4
Это действительно полезно для использования StrictMode в приложении? Проверь это.. http://mobile.tutsplus.com/tutorials/android/android-sdk_strictmode/
Ответ 5
Обратитесь к следующей ссылке о том, как ее использовать. Установите его в onCreate соответствующего компонента или приложения
Ответ 6
Это помогло решить проблему, проверив уровень api, а затем выполнив строгий режим.