2011-01-15 36 views
30

Bir radyo yayını uygulaması programlıyorum. Servisle iletişim kurmak için AIDL arayüz tekniğini kullanarak "radyo çalınıyor" u uzaktan servis olarak çalıştırıyorum. Ama ben bir şeyi anlamıyorum.AIDL arabirimi parametre değeri "In/out/inout"?

AIDL arabirimi parametre değerinde "çıkış" nedir? Bunun gibi

:

Anlıyorum yöntem faaliyetinden çağrıldığında, o uzak veri gönderiyor "nde"
String doSomething(in String a, out String[] b); 

.

"Dışarı" nedir ve neden aynı yöntemde "içeri" ve "dışarı" ihtiyacımız var? Hangi durumda ("out/inout") kullanılır? Neden String[] "dışarı"?

yardım edin .. AIDL yılında

+3

Sanırım @gladed sorunuzu kapsamlı bir şekilde yanıtladı. Cevabını kontrol edersen iyi olur. –

cevap

45

, out etiketi bir çıkış okunur parametre belirtir. Diğer bir deyişle, girdi üzerinde ilginç bir veri içermeyen, ancak yöntem sırasında verilerle doldurulacak bir parametredir. Örneğin

, bayt bir dizi aşağıdaki gibi belirlenmiş olabilir kopyalar için bir yöntem:

void copyArray(in byte[] source, out byte[] dest); 

inout etiketi parametresi giriş ve çıkış hem de anlamı olduğunu gösterir. Örneğin: her parametre içeriği marshalled olmalıdır, çünkü

void charsToUpper(inout char[] chars); 

önemlidir (iletilir, seri alınan ve serileştirilemezse). Giriş/çıkış etiketleri, Bağlayıcının daha iyi performans için sıralı adımı atlamasını sağlar.

+1

AIDL bağlantısı kapalı. Doğru olan [AIDL] (http://developer.android.com/guide/components/aidl.html) – kaneda

İlgili konular