Ressourcen stündlich gut schreiben

  • 9 Antworten
  • Letztes Antwortdatum
StefMa

StefMa

Dauer-User
450
Hi,

ich bin mit meiner neuen App grade in der konzeptionsphase.
In der App soll man stündlich X Ressourcen bekommen. Leider weiß ich nicht so recht wie ich das anstellen soll.
Ich hatte mir überlegt, dass ich beim verlassen der App die letzte volle Uhrzeit speichere, beim hinein gehen schaue ich dann die letzte volle Uhrzeit an und vergleiche wieviele Stunden vergangen sind.
Problem daran, wenn die App über eine Stunde offen ist. Also nicht komplett 1 Stunde offen sondern z. B. Von 16:59 bis 17:01. Dann wird ihm ja kein Guthaben gutschreiben.

Jemand also eine Idee, wie ich das lösen könnte?

Gruß

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Speichere Doch einfach den long value der Derzeitgen Uhrzeit. Wenn die Differenz zwischen zuletzt gewährter Ressource und derzeitiger Uhrzeit größer als 60.000 Millisekunden ist, können wieder Ressourcen gewährt werden und die gespeicherte Uhrzeit wird ersetzt.

Edit:
Oder soll es zu jeder vollen Uhrzeit die Möglichkeit geben, wieder an eine Ressource zu kommen?
 
nen Timer auf die nächsten volle Stunde setzen und den dann feuern?
Edit:

Alarmmanager oder so war das glaub ich
[Snippet]:

alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + (2000), _INTERVALL,
pendingIntent);
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: StefMa
Edit:
Oder soll es zu jeder vollen Uhrzeit die Möglichkeit geben, wieder an eine Ressource zu kommen?
Genau das. Immer um 14:00, 15:00, 16:00 usw soll es neue Ressourcen geben :)

nen Timer auf die nächsten volle Stunde setzen und den dann feuern?
Edit:

Alarmmanager oder so war das glaub ich
[Snippet]:

alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + (2000), _INTERVALL,
pendingIntent);
Auch eiine gute Idde. Allerdings wird dann ja der AlarmManager 24 stunden/7 Tage allein auf meiner App laufen. Wäre das nicht total übertrieben? Und natürlich auch Akku fressend?
Klar in dem AlarmManger wird kaum was gemacht. Schnell die Datenbank aktualisieren. Aber ich finds iwie doof :)

Gruß
 
IceClaw schrieb:
Allerdings wird dann ja der AlarmManager 24 stunden/7 Tage allein auf meiner App laufen. Wäre das nicht total übertrieben? Und natürlich auch Akku fressend?

Da sich die App nach einem Spiel anhört, fänd ich die Idee nicht gut, wenn man den AlarmManager nach beenden der App weiter triggern lässt - ganz einfach, weil es Wakelocks erzeugt und das muss bei einem Spiel ja nicht unbedingt sein. Aber dafür hast du ja deine Idee mit dem Abspeichern der letzten Gutschrift.

Problem daran, wenn die App über eine Stunde offen ist. Also nicht komplett 1 Stunde offen sondern z. B. Von 16:59 bis 17:01. Dann wird ihm ja kein Guthaben gutschreiben.

Sorry, vllt. steh ich auf dem Schlauch, aber wieso wird da dann kein Guthaben gutgeschrieben? Wenn ich davon ausgehe, dass ich die App 16:59 Uhr öffne, dann weiß sie, dass ich bspw. zuletzt 14 Uhr Ressourcen gutgeschrieben bekommen habe. Also erhalte ich für die 2 vergangenen Stunden (15 und 16 Uhr) die Ressourcen direkt beim Start. Während die App offen ist, sollte doch 17 Uhr so oder so der Ressourcenzufluss getriggert werden, oder?
 
kannst du den alarmmanager nicht abschießen wenn die app verlassen wird? dann könntest du ja so lange die app läuft den alarmmanager verwenden und beim verlassen/neustarten, die von dir schon angesprochene methode ...
 
Japp das kann er und meinte ich ja zuvor so auch.
 
  • Danke
Reaktionen: StefMa
Sorry, vllt. steh ich auf dem Schlauch, aber wieso wird da dann kein Guthaben gutgeschrieben? Wenn ich davon ausgehe, dass ich die App 16:59 Uhr öffne, dann weiß sie, dass ich bspw. zuletzt 14 Uhr Ressourcen gutgeschrieben bekommen habe. Also erhalte ich für die 2 vergangenen Stunden (15 und 16 Uhr) die Ressourcen direkt beim Start. Während die App offen ist, sollte doch 17 Uhr so oder so der Ressourcenzufluss getriggert werden, oder?
Wenn ich um 16:59 in die App gehe. Gucke ich in die Datenbank: das letzte mal um 14 Uhr online - 2 Stunden ressourcen befüllung (15:00 und 16:00).
Wenn er die App nun um 17:01 beendet. Dann wird 17 Uhr als letzte Gutschrift gespeichert. Heißt, bein nöächsten login um 19:03. Wird geschaut, wann das letzte mal online (17:00) und es werden ihm wieder 2 Stunden gutgeschrieben. 18:00 und 19:00 Uhr. Die 17:00 verfehlt er dabei.

kannst du den alarmmanager nicht abschießen wenn die app verlassen wird? dann könntest du ja so lange die app läuft den alarmmanager verwenden und beim verlassen/neustarten, die von dir schon angesprochene methode ...
Ja oder so ähnlich :)
Ich muss ja nur mit loggen, ob der User über eine volle Uhrzeit online war. Heißt ich speichere halt auch noch wann er "online" gekommen ist.
Wenn er dann "offline" geht, wird geschaut ob es über eine volle Uhrzeit ging.
Wenn ja -> gut schreiben; ansonsten online zeit löschen und nichts tun :D

Soltle so klappen?! Dann benötige ich auch kein AlarmManager :)

Gruß
 
IceClaw schrieb:
Die 17:00 verfehlt er dabei.

Imho solltest du das ja triggern, wenn die App aktiv ist. Du willst ja nicht nur gutschreiben, wenn der User App beendet und sich wieder einloggt. Und da kommt dann die angesprochene Kombination aus AlarmManager (der triggert dir dann bspw. jede Stunde den Ressourcenzufluss, wenn die App aktiv ist - also auch um 17 Uhr) und für den Rest deine oben beschriebene Methode.
 
  • Danke
Reaktionen: StefMa
Du willst ja nicht nur gutschreiben, wenn der User App beendet und sich wieder einloggt.
Jo, stimmt. Hast recht :)

Könnte aber natürlich auch ein "Aktualisieren"-Button hinzufügen :D

Aber das ist jetzt Detail.

Danke für eure Hilfe!

Gruß
 
Zurück
Oben Unten