2011-02-03 24 views
5

hey insanlar, Neredeyse ilk android uygulamamı yazmayı bitirdim. Bu ... eklenti, düzenleme görünümü ekranlarında vb ile bir not alma uygulamasıdır Android - Hangi daha verimli?

Başlangıçta ben vb tablolar gibi nesneleri yeni bir düzen oluşturarak tek aktivitede ekranlar arasında hareket taşıma ... ve bunları gösteren edildi. Ancak daha fazla okumadan sonra farklı ekranlar için farklı etkinlikler kullanarak ekranlar arasında geçiş yapma yöntemimi değiştirdim. Ancak, niyet olarak adlandırılan her etkinlik, ana aktiviteden setExtra ile çok sayıda değişkeni alır ve çok sayıda değişkeni de geri gönderir.

Şimdi uygulamamın olabildiğince verimli olmasını istiyorum ve kişisel olarak tek bir etkinlikte hepsini ele almanın daha az bellek açlığı ve işlemci yoğunluğu olduğunu düşünmekteyim, ancak bu her ne kadar anlam değişkenlerinin olumsuzluğu her zaman mevcutsa (ve bellek tüketiyorsa) bitiş() üzerinde öldürüldükleri ayrı bir etkinlikte. Ama sizler daha bilgili misiniz, o zaman sizce bunu yapmanın en iyi yolu nedir?

+0

Yapmak istediğiniz şey, etkinlikler arasında çok fazla değişken geçirmeniz gerektiği gariptir. Ne tür değişkenler bunlar? Ve "büyük bir sayı" ile ne demek istiyorsun? – Dalmas

+0

ADNR iletişim kutusunu aldığınız performans sorunlarını gerçekten ölçtünüz mü? Eğer değilse, muhtemelen performans konusunda endişelenmemelisiniz. –

cevap

5

Yeni ekranlar için yeni bir aktivite başlatırsanız, o etkinliği yığına eklersiniz. Bu şekilde bir kullanıcı geri basabilir ve bir önceki etkinliğe geri dönebilir. Sadece düzeni değiştirmek bu işlevselliği kaldırır. Çok fazla şüphe edersem, her iki şekilde de performans sorunlarınız olur.

En iyi uygulama yeni bir etkinlik başlatmak olacaktır, en iyi performans mevcut yaklaşım kullanmak olabilir.

+1

Ayrıca, birden çok Faaliyet yaklaşımı yeniden kullanımı kolaylaştırır. –

1

Tüm etkinlikleriniz aynı işlemden geçer ve çalışır. Yani değişkenler yığını etrafında geçmek için bir neden yoktur. Bunları, örneğin, içeriğinizi temsil eden tek bir kutuya yapıştırabilirsiniz. Bir aktivite diğerine geçtiğinde, singleton'u doldurur ve bir diğeri de verilerini oradan alır. Tabii

Hiç bu yaklaşımı yeniden düşünmek gerekebilir sizin olanlarla etkileşim harici aktiviteyi niyetindeyim ama ayrı faaliyetler olarak görüşlerinizi tutmak için iyi olacağını düşünüyorsanız. Bellek biraz daha yüksek olsa bile, bence doğru olanı yapmak daha iyidir ve sadece optimizasyon hakkında endişelenmeniz daha iyidir.

İlgili konular