Örneğin, kullanıcıların veri depolamaya başlaması için veritabanında yeni bir satır başlayacak olan "Yeni teklif al" düğmesine basabilmelerini istiyorum, ancak etkinliğin nasıl depolanacağından emin değilim (veya sonraki aktivitelerde yeni veriler mevcut olduğunda satırı istemek ve güncellemek zorunda kalacağım satırın _id'i gibi veri veya çapraz aktivite). Bu mekanizmanın adı nedir ve nasıl yapılır?Android'de bir Session/Cookie değişkenine en yakın eşdeğer nedir?
cevap
Tek bir uygulamada Verileri/Servisler arasında veriyi nasıl geçirebilirim?
O paylaşmak istediğiniz verinin türüne bağlıdır: bir uygulamada Etkinlikler/Hizmetleri arasında ilkel veri paylaşmak için
İlkel Veri Türleri , Intent.putExtras() kullanın. Devam etmesi gereken ilkel verileri geçirmek için Preferences depolama mekanizmasını kullanın.
Kalıcı Olmayan nesneler kısa bir süre için karmaşık kalıcı olmayan kullanıcı tanımlı nesne paylaşımı için aşağıdaki yaklaşımlar önerilmektedir:
android.app.Application sınıfı
android .app.Uygulama, genel uygulama durumunu sürdürmesi gerekenler için temel bir sınıftır. Herhangi bir Etkinlik veya Hizmet'ten getApplication() ile erişilebilir. AndroidManifest.xml içinde kayıt olursanız, birkaç yaşam döngüsü yöntemleri vardır ve Android tarafından otomatik olarak başlatılacaktır.
Bir kamu statik alan/yöntem
Etkinlikler/Hizmet genelinde veri erişilebilir hale getirmek için alternatif bir yol, kamu statik alanlar ve/veya yöntemleri kullanmaktır. Bu statik alanlara uygulamanızdaki diğer sınıflardan erişebilirsiniz. Bir nesneyi paylaşmak için, nesneyi oluşturan etkinlik, bu nesneyi işaret edecek bir statik alan belirler ve bu nesneyi kullanmak isteyen başka herhangi bir etkinlik bu statik alana erişir. Nesneleri
Ayrıca uzun tuşlarıyla Nesneler WeakReferences bir HashMap kullanabilirsiniz için WeakReferences arasında
Bir HashMap. Bir etkinlik bir nesneyi başka bir etkinliğe geçirmek istediğinde, sadece nesneyi haritaya koyar ve (ekstra bir Long ya da zaman damgası bazında benzersiz bir Long olan) anahtarı alıcı ekleri yoluyla alıcı aktivitesine gönderir. Alıcı etkinliği, bu anahtarı kullanarak nesneyi alır.
Bir Singleton sınıf
statik Singleton, kullanmanın avantajları vardır böyle bir uygulamaya özel sınıfa GetApplication() döküm veya bir arabirim asılı sorun gitmeden onlara başvurabilirsiniz olarak Tüm uygulama alt sınıflarınızda çeşitli modüllerin bunun yerine bu arabirime başvurabilmesi için.
Ancak, bir statikin yaşam döngüsü sizin kontrolünüzün altında değildir; böylece yaşam döngüsü modeli uymak bir uygulama görünür iken bile
Kalıcı nesneleri için, uygulama sınıfı başlatmalıdır ve) (onCreate() ve onTerminate uygulama Sınıf yöntemleri Bu statik nesneleri yıkmak çalışmaya devam ederse, sistem sürecini öldürmeyi seçebilir ve daha sonra yeniden başlatabilir. Bir etkinlik çağrısından diğerine geçmek için ihtiyacınız olan verilere sahipseniz, söz konusu verilerin, bir etkinlik tarafından kaydedilebilecek durum olduğunda kaydedilen durum olarak temsil edilmesi gerekir. Karmaşık kalıcı kullanıcı tanımlı nesneler paylaşımı için
aşağıdaki yaklaşımlar önerilir: paylaşılan veri başvuru süreci öldürülebilir noktaları arasında muhafaza gerekiyorsa
Application Preferences
Files
contentProviders
SQLite DB
sonra kalıcı da bu verileri yerleştirmek Uygulama Tercihleri, SQLite DB, Dosyalar veya ContentProviders gibi depolama. Bu bileşenlerin nasıl kullanılacağı hakkında daha fazla bilgi için lütfen Veri Deposuna bakın.
Eh, bu uygulama kullanıcı olarak telefon sahibine sahip olsaydı işe yarardı, fakat benim durumumda, kullanıcının birden çok kullanıcı oluşturabilmesini istiyorum ve bu nedenle birden çok veri satırı olacak. Her şeyi bir SQLite db'de saklıyorum, bu da iyi çalışıyor, ancak bir kullanıcıyı devam ettirdiğimde, kimliği alıp etkinlikten etkinliğe geçirmek istiyorum. Şimdiye kadar, niyette fazladan geçmek işe yarayan tek şeydir, bunun doğru ya da en etkili yol olup olmadığından emin değil. –
Tamam Cevabımı güncelledim, gideceğiniz yol "android.app.Application sınıfı" ile – Pentium10
şimdi ofisten ayrılıyorum, bu yüzden ne işe yarayıp yaramadığını kontrol etmek için zamanınız yok, ama bu bir özlü cevap! Çok teşekkürler. Verileri nasıl paylaşacağımı bulmakta herhangi bir sorun olmamalı. –
- 1. Ruby's Rack'a en yakın C++ analogu nedir?
- 2. En yakın çeyreğe en yakın çeyreğe nasıl taşınır
- 3. piton grubu en yakın değerlere
- 4. Yuvarlama en yakın beş
- 5. En yakın zaman damgası
- 6. jQuery en yakın işlevi için prototip eşdeğeri
- 7. Bir ipi en soldaki en yakın + ve en yakın + nasıl kırpılır? devam ediyor 4gl
- 8. python için SLIME en yakın şey nedir?/EMPOS'tan python kullanmanın en iyi yolu nedir?
- 9. Bir çiftin en yakın tam sayıya yuvarlanması
- 10. Bir sorguda en yakın tarihi bul
- 11. Bir DateTime'ı en yakın Dönem'e nasıl geçiririm
- 12. Bir Java BigDecimal'i en yakın aralığa yuvarlama
- 13. Belirli bir numaraya en yakın numaraları bulma
- 14. Bir data.table içinde en yakın değeri bulma
- 15. İki poligonun en yakın noktaları
- 16. En Yakın Dışbükey Çokgenleri Birleştir
- 17. SQLite - en yakın değeri alma
- 18. JavaScript'te En Yakın Eşlik Algoritması
- 19. Yuvarlatılmış en yakın tam sayı
- 20. Listeden en yakın tarihi bul
- 21. javascript - en yakın tam sayıya
- 22. jquery: en yakın ('h3') seçici?
- 23. K en yakın komşu python
- 24. Python/Numpy - Dizini, Bir Değere En Yakın Dizide Bul Bazı Değerlere En Yakın
- 25. androidde openssl nasıl kurulur
- 26. masmavi bir pencere hizmeti eşdeğer nedir?
- 27. En son ve en yakın gönderileri bul, sınırla 20
- 28. pyspark scala.util.Try ile eşdeğer nedir?
- 29. Python'da 'gem' için eşdeğer nedir?
- 30. Linux üzerinde birbirine eşdeğer eşdeğer
Belki bir paket? –