SORU
15 Ocak 2013, Salı


Ne iyidir: @SuppressLint ya @TargetApi?

Benim uygulama sorunları StrictMode ile ilgili ve temelde StrictModeHelper devre dışı bırakan kod parçacığını ekledi. Ancak, Tüysüz setThreadPolicy() hakkında şimdi şikayetçi ve ya eklemek için öneriyor

@SuppressLint 'NewApi'

ya

@TargetApi(Build.VERSION_CODES.GINGERBREAD)

görünüm onCreate() olay.

Hangi yöntemi tercih edilir ..ya da temelde aynı şeyi yapıyorlar?

CEVAP
15 Ocak 2013, Salı


Benim app StrictMode ile ilgili sorunları var ve temelde StrictModeHelper devre dışı bırakan kod parçacığını ekledi

Yetenekli programcıları ağ yaptıkları hatayı düzeltmek istiyorum.

Hangi yöntemi tercih edilir ..ya da temelde aynı şeyi yapıyorlar?

@TargetApi @SuppressLint aynı temel etkiye sahiptir: onlar Tüysüz hata bastırmak.

Farkı ile @TargetApi ilan üzerinden parametre, ne API seviyesi var ele kodunuzu, böylece hata yapabilir pop-up bir daha olursa seni sonra Değiştir yöntemi deneyin başvuran bir şey daha yeni API seviyesi bildirilmiş @TargetApi.

Örneğin, ağ hata hakkında StrictMode şikayet engelleme yerine, AsyncTask sorunu Android daha yeni sürümleri üzerinde sıralanmış geçici bir çözüm bulmak için çalıştığını varsayalım. Kodunda böyle bir yöntem daha yeni cihazlar üzerinde iplik havuza tercih ve eski cihazlarda varsayılan çoklu davranışı kullanmak zorunda:

  @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) olması halinde Tüysüz bir şey ** 17, ama API seviyem daha yeni kullanıyorum algılarsa 11, Tüysüz şikayet anlamına gelir. Bu durumda işe yarar. Eğer, ancak, değiştirilmiş bu yönteme başvurmak bir şey değildi katma kadar API Level 14, Tüysüz hata görünüyor yine, çünkü benim @TargetApi(11) ek açıklama diyor ki ben sadece sabit kod üzerinde çalışmak için API Seviyesi 11 ve aşağıda, API Level 14 ve aşağıda.

@SuppressLint('NewApi'), ben kullanarak Tüysüz hata kaybederherhangi birAPI seviyesi benim kod başvuruları ne ve benim kod işlemek için kurulmuş ne olursa olsun.

Dolayısıyla, @TargetApi "TAMAM," ince taneli daha bir moda. sorunları bu kategori düzelttim yapı araçları söylemek verdiğinden tercih edilen açıklama,

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012
  • Tom Megalis

    Tom Megalis

    18 NİSAN 2006