Android - restart aplikacji po zmianie położenia

0

Jak w temacie.

Napisałem sobie aplikację, która pokazuje pokolei pewne stringi, i wszystko działa ok.
Ale jak zmienię położenie to tak jakby stan aplikacji ładuje się od nowa i pokazuje znowu stringi od początku.
Wiem, że można by wyłączyć zmiany położenia ale nie o to mi chodzi.

  1. Jak zrobić coś takiego?
  2. Jak na czas działania aplikacji wyłączyć usypienia telefonu?
  3. Jak na czas działania aplikacji zmienić czas usypiania telefonu?
1

To jest standardowa pułapka androida. KAŻDA zmiana konfiguracji (zmiana orientacji, zmiana rozmiaru ekranu, zmiana języka, ...) powoduje, że stan Activity jest zapisywany, a następnie tworzone jest nowe Activity z nową konfiguracją, a jego stan odtwarzana na podstaie zapisanych danych. Zapisane dostępne są w argumencie Bundle savedInstanceState metody OnCreate.
Najlepszym rozwiązaniem jest zapisanie twojej logiki w OnSaveInstanceState (Bundle outState) a następnie w OnCreate jeśli savedInstanceState nie jest NULL odtworzyć ten stan.
W manifeście można ustawić, że sam będziesz obsługiwał zmiany konfiguracji (Activty nie zostanie ponownie utworzone) i obsługiwać to w onConfigurationChanged (Configuration newConfig), ale wtedy pojawią się problemy z kompatybilnością miedzy niektórymi wersjami Androida (np os 3.1 jest zmiana rozmiaru ekranu, więc jeśli chcesz obsługiwać starsze wersje, będzie to kłopotliwe).

Ad 2 i 3: http://stackoverflow.com/a/9335990/1387438

1 użytkowników online, w tym zalogowanych: 0, gości: 1