2013-08-26 13 views
5

Zastanawiam się, jaki byłby lepszy sposób obsługi danych w kilku działaniach w systemie Android.Czy lepiej przekazać dane za pomocą intencji lub zapytać bazę danych w razie potrzeby?

Powiedzmy, że miałem dwie aktywności, A i B, które mają pewne poglądy. Najpierw ładuję niektóre dane z bazy danych SQL i nadmuchuję widoki w A. Teraz chcę rozpocząć działanie B, które używa tego samego zestawu danych co A.

Czy lepiej przekazać dane za pomocą funkcji Intent (putExtra()), a następnie nadmuchać widoki, czy lepiej jest ponownie wysłać zapytanie do bazy danych, a następnie nadmuchać.

nie jestem tego pewien, ponieważ oba podejścia wydają się mieć swoje wady:

  • przeglądając bazę danych trwa dłużej/więcej środków
  • Umieszczenie dodatkowych danych do intencji czyni go bardziej skomplikowane, ponieważ umieszczania i otrzymywania danych (szczególnie podczas pracy z większą liczbą czynności)

Czy ktoś może udzielić mi porady na temat najlepszej praktyki?

+0

aplikacja Zastosowanie CLA ss http://developer.android.com/reference/android/app/Application.html – Raghunandan

Odpowiedz

2

W porównaniu do zapytania DB użyj zamiaru.

Innym sposobem jest użycie jednej wspólnej klasy, która będzie przechowywać dane tymczasowo.

0

Istnieje wiele sposobów przekazywania i pobierania danych. Bardziej przydatne jest użycie zapytania Intent niż DB.

Ale istnieje inny użyteczny sposób jest współdzielony prefernce. Dzięki temu możesz tworzyć, edytować, usuwać dane, a także pobierać dane z dowolnego działania.

Aby utworzyć lub edytować wspólną preferencję:

String share_pref_file = "your_file_name";  
SharedPreferences prefs1 = getSharedPreferences(
     share_pref_time_file, Context.MODE_PRIVATE); 
SharedPreferences.Editor editor1 = prefs1.edit(); 
editor1.putString("your_data", data); //data is your variable 
editor1.commit(); 

Aby pobrać dane:

String share_pref_file = "your_file_name"; 
SharedPreferences prefs = getSharedPreferences(share_pref_file, 
    Context.MODE_PRIVATE); 
String strJson = prefs.getString("your_data", ""); 

Aby usunąć:

String share_pref_file = "your_file_name"; 
SharedPreferences prefs1 = getSharedPreferences(
      share_pref_file, Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = prefs1.edit(); 
    editor.remove(share_pref_file); 
    editor.clear(); 
    editor.commit(); 
+0

Współdzielona preferencja jest odpowiednia, gdy masz mniejszą liczbę danych i będzie używana tylko wtedy, gdy będziesz musiał użyć tych danych przez całą aplikację i często używany. Nie jest to lepszy sposób, ponieważ wspólne dane preferencji będą przechowywane w pamięci RAM urządzenia, więc aplikacja będzie działać wolno i może się zawiesić z powodu problemów z pamięcią. –

Powiązane problemy