Potrzebuję co 1 sekundę wykonać metodę nie zależnie czy telefon jest wygaszony czy też nie. Wie ktoś jak to zrobić? Wiem że android ma ograniczenie co 15minut ale wiem że są aplikacje które robią zadania częściej.
Nie znam się na flutterze ale próbowałem coś podobnego zrobić na androidzie i krótka odpowiedź to: nie da się.
A dłuższa - może znajdziesz sposób na konkretny telefon i konkretny use case, ale na przykład na samsungach jest mega trudno utrzymać aplikację przy życiu - jedyny działający sposób to wake lock
z keep screen on
, o ile użytkownik nie przełączy aplikacji na inną.
Kazik Kowalski napisał(a):
wiem że są aplikacje które robią zadania częściej.
Możesz dać przykład takiej aplikacji? Czy to aplikacja systemowa i na jakim telefonie? Co konkretnie chcesz zrobić?
Teoretycznie możesz na przykład wysyłać wiadomości push co sekundę i wtedy aplikacja ma ileś tam milisekund żeby wykonać jakiś kod, ale musiałbyś takiego pusha wysyłać do każdego użytkownika i nie wiem jak z limitami w takim przypadku.
obscurity napisał(a):
Nie znam się na flutterze ale próbowałem coś podobnego zrobić na androidzie i krótka odpowiedź to: nie da się.
A dłuższa - może znajdziesz sposób na konkretny telefon i konkretny use case, ale na przykład na samsungach jest mega trudno utrzymać aplikację przy życiu - jedyny działający sposób towake lock
zkeep screen on
, o ile użytkownik nie przełączy aplikacji na inną.Kazik Kowalski napisał(a):
wiem że są aplikacje które robią zadania częściej.
Możesz dać przykład takiej aplikacji? Czy to aplikacja systemowa i na jakim telefonie? Co konkretnie chcesz zrobić?
Teoretycznie możesz na przykład wysyłać wiadomości push co sekundę i wtedy aplikacja ma ileś tam milisekund żeby wykonać jakiś kod, ale musiałbyś takiego pusha wysyłać do każdego użytkownika i nie wiem jak z limitami w takim przypadku.
Blokowanie wygaszania ekranu trochę mija się z celem. A przykładem takiej aplikacji jest strava
przykładem takiej aplikacji jest strava
A skąd wiesz, że ona co sekundę coś odpala? OK, chodzi w tle, a jak masz odpaloną na odblokowanym ekranie to rzeczywiście może pokazywać dane/aktualizować się w czasie rzeczywistym, ale skąd masz info, co się dzieje, jak telefon jest wyłączony/uśpiony?
cerrato napisał(a):
A skąd wiesz, że ona co sekundę coś odpala? OK, chodzi w tle, a jak masz odpaloną na odblokowanym ekranie to rzeczywiście może pokazywać dane/aktualizować się w czasie rzeczywistym, ale skąd masz info, co się dzieje, jak telefon jest wyłączony/uśpiony?
Krótka odpowiedź na pytanie nie wprost - to jest Android a nie iOS.
Dłuższa odpowiedź - ten pierwszy OS nie panuje nad tym co robią w tle jego procesy (dlatego też Samsung dodał swoją fancy usługę w postaci kill-switcha dla nieużywanych aplikacji która swego czasu psuła 80% aplikacji) a ten drugi po prostu je ubija.
Kazik Kowalski napisał(a):
wiem że są aplikacje które robią zadania częściej.
Orly? Nie wydaje mi się. Podaj przykłady.
Doedukuj się na https://dontkillmyapp.com/
Będziesz miał ograniczenia platformowe i na iOS i na android. Wynika to z tego, że gdyby większość firm/developerów tworzyła takie aplikacje to pełne naładowanie telefonu starczyłoby na 3 godziny.
Na android obecnie WorkManager oferuje periodic work request, który ma minimalny interwał 15 minut, tego ograniczenia nie pokonasz. Ja pracuję już bardzo długo i nigdy nie miałem potrzeby wywoływać metody co sekundę w background. Może opisz jaki masz problem bo podchodzisz do niego źle.