@SuppressLint 또는 @TargetApi 중 더 나은 것은 무엇입니까?
내 앱에 다음과 관련된 문제가 있습니다.StrictMode
그리고 기본적으로 그것을 비활성화하는 코드 스니펫을 추가했습니다.StrictModeHelper
그러나 린트는 다음과 같은 불만을 제기합니다.setThreadPolicy()
지금 그리고 추가할 것을 제안합니다.
@SuppressLint 'NewApi'
또는
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
에게onCreate()
경치의 사건.
어느 방법이 선호됩니까? ..아니면 기본적으로 같은 방법을 사용하고 있습니까?
앱에 StrictMode 관련 문제가 있으며 StrictMode 도우미를 기본적으로 비활성화하는 코드 스니펫을 추가했습니다.
네트워킹 버그를 수정해 주세요.
어느 방법이 선호됩니까? ..아니면 기본적으로 같은 방법을 사용하고 있습니까?
@TargetApi
그리고.@SuppressLint
핵심 효과는 동일합니다. 즉, 린트 오류를 억제합니다.
다른 점은 다음과 같습니다.@TargetApi
파라미터를 통해 코드에서 주소를 지정한 API 레벨을 선언하여 나중에 에 인용된 API 레벨보다 새로운 것을 참조하도록 방법을 수정하면 오류가 다시 나타날 수 있습니다.@TargetApi
.
예를 들어, 다음과 같이 가정합니다.StrictMode
네트워킹 버그에 대한 불만, 당신은 문제를 해결하려고 노력했습니다.AsyncTask
최신 버전의 Android에서 연재 중입니다.코드에는 다음과 같은 방법이 있습니다. 새 장치의 스레드 풀을 선택하고 이전 장치의 기본 멀티스레드 동작을 사용합니다.
@TargetApi(11)
static public <T> void executeAsyncTask(AsyncTask<T, ?, ?> task,
T... params) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
}
else {
task.execute(params);
}
}
하고 있다@TargetApi(11)
즉, 린트가 내 것보다 더 새로운 것을 사용하는 것을 감지하면android:minSdkVersion
하지만 API 레벨 11까지는 린트가 불평하지 않을 것입니다.이 경우에는 효과가 있습니다.하지만 API 레벨 14까지 추가되지 않은 것을 참조하도록 이 방법을 수정하면 린트 오류가 다시 나타날 것입니다. 왜냐하면,@TargetApi(11)
주석에 따르면 API 레벨 11에서 작동하도록 코드만 수정했습니다.
아래에 위, API 레벨 14가 아닌
아래에 위의
사용.@SuppressLint('NewApi')
내 코드가 참조하는 내용과 처리하도록 설정된 코드에 관계없이 API 수준에 대한 Lint 오류가 손실됩니다.
이런 이유로,@TargetApi
기본 주석으로, 빌드 도구에 "좋아요, 문제 범주를 수정했습니다"라는 메시지를 보다 세분화된 방식으로 표시할 수 있습니다.
언급URL : https://stackoverflow.com/questions/14341042/what-is-better-suppresslint-or-targetapi
'code' 카테고리의 다른 글
부분 선언은 서로 다른 기본 클래스를 지정할 수 없습니다. (0) | 2023.04.28 |
---|---|
를 사용하여 프로그램이 시스템 트레이에 최소화되도록 하는 가장 쉬운 방법입니다.NET 4 (0) | 2023.04.28 |
배시 루프 목록에서 공백을 이스케이프하려면 어떻게 해야 합니까? (0) | 2023.04.28 |
첫 번째, 마지막, 인덱스 루프에 대한 각도 2 ng (0) | 2023.04.28 |
SQL Server 2008의 XML 필드에서 값 선택 (0) | 2023.04.28 |