2010-08-26 21 views
7

Bir etkinlikten diğerine geçtikten sonra bazı özel animasyonlar yapmak için overridePendingTransition kullanan bir uygulama var. Bu Android 2.0'da kullanıma sunuldu, ancak uygulamayı Android 1.6'da çalıştırmak istiyorum. Sadece android.os.Build.VERSION.SDK_INT> android.os.Build.VERSION_CODES.DONUT seçeneğini işaretlediysem ve eğer yapmasaydı, geçersiz kılmaDeğiştirme işlemini yapmadım. VFY: sanal bir yöntem 346 çözülemiyor: ../../Login: overridePendingTransition (II) vVerifyError veya uyumluluk korunurken overridePendingTransition kullanılıyor mu?

mümkün değil midir

Ancak, ben bu kaynaklanır varsayalım bir VerifyError olsun SDK sürümüne bağlı olarak daha yeni işlevselliği kullanmak için?

cevap

15

SDK sürümüne göre koşullu olarak daha yeni işlevler kullanmak mümkün mü?

Evet, öyle.

ben kod aşağıdaki gibi görünüyor tahmin için gidiyorum: Doğru isem, o zaman bu işe yaramaz

if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) { 
    overridePendingTransition(...); 
} 

. VM, if() bildirimi yürütüldüğünde değil, sınıf yüklendiğinde overridePendingTransition() bulmaya çalışır.

Bunun yerine, bunu yapmak mümkün olmalıdır: overridePendingTransition()SomeClassDedicatedToThisOperation içinde uygulanması sadece verilen Activity üzerinde overridePendingTransition() çağırır

if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) { 
    SomeClassDedicatedToThisOperation.overridePendingTransition(this, ...); 
} 

.

SomeClassDedicatedToThisOperation başka hiçbir yerde kullanılmadığı sürece, sınıfınız if() testine girmeden yüklenmez ve VerifyError'u alamazsınız.

İlgili konular