2017-06-11 9 views
6

zacząłem przetestować aplikację na Androida Nexus 5x z O.
My targetSdkVersion jest 22.
W miejscu dewelopera czytałem o Background execution limits:
gdzie:
By domyślne ograniczenia te stosuje się wyłącznie do aplikacji, których celem O. jednak użytkownicy mogą włączyć te ograniczenia dla każdej aplikacji z ekranu ustawień, nawet jeśli aplikacja nie kierowane O.limity Android O dla niższy docelowej SDK

  1. Gdzie są te ustawienia (wymuszające ograniczenia Androida O)?
  2. Co jest najlepszą praktyką dla tych ograniczeń, podczas gdy ja nadal chcę , aby zachować niższy targetSdkVersion?
+0

Chcę również wiedzieć, gdzie jest ustawienie. – Kislingk

+0

Czy istnieje sposób, w jaki możemy dodać naszą aplikację do białej listy? –

Odpowiedz

0
  1. Nie mogę go znaleźć.
  2. Najlepszą praktyką byłoby opracowanie tego dla interfejsu API 26, ale nie jest nim kierowanie. Więc uruchamianie twoich usług jako usługi pierwszoplanowej. Następnie twoja usługa powinna rozpocząć pierwszy plan Powiadomienia w onCreate.

Od the docs:

Nowa metoda Context.startForegroundService() uruchamia usługę pierwszoplanowy. System pozwala aplikacjom dzwonić pod numer Context.startForegroundService(), nawet gdy aplikacja działa w tle. Jednak aplikacja musi wywołać tę usługę za pomocą metody startForeground() w ciągu pięciu sekund po utworzeniu usługi. (startForeground przesyła powiadomienie)

0

Znalazłem ustawienie pod App info > Battery usage, chociaż nie wszystkie aplikacje mają to ustawienie.

Gdy ta opcja jest przy I patrz poniższe kłody:

W/BroadcastQueue: wykonanie Tło niedozwolone. Otrzymywania zamiar {act = android.intent.action $ mającej DAT = opakowanie: $ APP_PACKAGE FLG = 0x4000010 (posiada dodatki)} do $ APP_PACKAGE/$ APP_RECEIVER

App Info > Battery usage

[Update 27 września 2017]

Jak opisano here:

Jednak deweloperzy nie mogą korzystać z ustawień aplikacji do zastosowania tego ograniczenia, chyba że ich aplikacja dzieje się na liście winy akumulator, który idealnie się nie dzieje.

Ten artykuł nieudokumentowane sposób przetestować ograniczenia tła poprzez następujące polecenie (możliwe są ignore i allow wartości)

adb shell appops set your.application.id.here RUN_IN_BACKGROUND ignore 

Najlepsze praktyki są

  • Jeśli planujemy przyklejania z niższym targetSdkVersion przez pewien czas, i jesteś naprawdę naprawdę pewien, że twoja aplikacja nie pojawi się na nietoperzu Tery winy listy, i chcesz zignorować ograniczenia w tle na teraz, to twoja decyzja do zrobienia.

  • Jeśli jednak planujesz pozostać przy niższej wartości docelowej wersji docelowej, a Twoja aplikacja ma tendencję do zużywania znacznego czasu pracy na baterii, przetestuj swoją aplikację za pomocą polecenia komendy adb powłoki cytowanej powyżej. Jeśli nic więcej, możesz zidentyfikować prawdopodobne objawy, które mogą wystąpić u użytkowników, jeśli ograniczą pracę w tle za pomocą ekranu Bateria w Ustawieniach. W ten sposób, jeśli dostaniesz telefony/e-maile/SMS-y/komentarze do Play Store/candygrams o tych objawach, możesz lepiej doradzić użytkownikom, co mają robić.

Zobacz także Android Oreo Background Execution Limits

0
  1. App Wykorzystanie informacji> Akumulator
  2. IMO najlepsza praktyka jest niestety kierować API 26 ... To domyślne zachowanie jest nie tylko dla starszych aplikacji (siedzi w grać w sklepie, ale nie jest już aktualizowany).