2016-08-24 5 views
1

Es tut mir leid, wenn diese Frage bereits gestellt wird, kann ich kein Stichwort dafür finden. Ich baue gerade eine Musik-Streaming-App. Ich habe ein Problem bei der Wiedergabe. Um mich an das nächste Lied zu erinnern, habe ich den Musikdienst gestartet und eine Arraylist der Musik und der aktuellen Position gesendet, die gespielt werden müssen.Android-Musik-Player erhalten zuletzt gespielt Liste

Ich habe einen kleinen Platz in der ganzen App zeigt jetzt Musik zu spielen. Es funktionierte großartig, außer wenn ich mein Telefon neu startete, was bedeutet, dass der Dienst zerstört wurde und die App sich nicht an die zuletzt gespielte Liste erinnert.

Ich überlege gerade, eine lokale Datenbank zu erstellen, um sich an die zuletzt gespielte Liste zu erinnern. Aber ich denke, es ist nicht die beste Vorgehensweise dafür. Kann mir jemand einen Weg geben, um das zu erreichen, was ich brauche? Danke!

EDIT: Ich endete Umwandlung Arraylist in JSON und speichern in SharedPreference. Nächstes Mal, wenn ich es brauche, wandle ich es zurück in Arraylist.

Antwort

1

ich mich schuf eine Musik-Player-App für Android, und was ich zuletzt gespielt Songliste speichern tat folgt -

  1. Erstellt ein HashMap mit Song-ID als Schlüssel und Position in der Liste als Wert
  2. Aktualisieren Sie diese Hashmap, wenn ein Song abgespielt wird.
  3. Zuletzt speichern Sie diese Hashmap im internen Speicher des Geräts.

-Code HashMap im internen Speicher zu speichern -

File Listdirectory = cw.getDir("your direcotry", Context.MODE_PRIVATE); 
    File ListPath = new File(Listdirectory,"file name"); 
    try { 
     FileOutputStream fMap = new FileOutputStream(ListPath); 
     ObjectOutputStream s = new ObjectOutputStream(fMap); 
     s.writeObject(your hashmap); 
     s.close(); 
    } 
    catch (Exception e){ 

    } 
+1

onDestroy() nicht genannt werden garantiert, „Hinweis: nicht auf dieser Methode zählt als ein Ort zum Speichern von Daten genannt zu werden!“: https://developer.android.com/reference/android/app/Activity.html#onDestroy() – csenga

+0

@csenga ja du hast recht, ich wusste das zu diesem Zeitpunkt nicht ... –

Verwandte Themen