/ / Текущата активност изчезва, когато екранът се заключи - Android, ядрото на Android, активността на андроид, жизнения цикъл на Android

Текущата активност изчезва, когато екранът се заключи - Android, ядрото на Android, активността на андроид, жизнения цикъл на Android

Така че тук е моята дейност.

<activity
android:name=".MainActivity_Hard"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/title_activity_main_activity__hard"
android:noHistory="true"
android:screenOrientation="portrait" >
</activity>

Маркирах го като андроид: noHistory = "true", защото не исках екранът да бъде добавен към активния стек.

Но когато заключа екрана и го отключа. Активността изчезва и се появява предният екран. Това не трябва да се случва. Може ли някой да ми каже защо.

Забележка: Това се случва в ICS (Samsung Galaxy Note), но не и с предишни устройства (Gingerbread и др.)

Отговори:

3 за отговор № 1

Задаване на атрибута noHistory във вашата дейностозначава, че веднага щом потребителят се отдалечи от тази дейност - като включи екрана за заключване - функцията му за завършване () се извиква автоматично, като по този начин го унищожава и се връща към предишната дейност, която я зареди.

Това обикновено се използва за дейности от тип splash-screen, които например действат само като стартер и не искате потребителят да може да се върне на началния екран от детето.

Ако това не е вашето намерение, тогава трябвапомислете за премахване на атрибута noHistory и може би само за управление на жизнения цикъл на активността. (Например, ако не искате вашата дейност да бъде в стека, то просто завършете обаждането () веднага след като започнете друга дейност.)

Android: noHistory

Дали тази дейност трябва да бъде премахнатаот активният стек и завършил (неговият метод на завършване ()), когато потребителят се отдалечава от него и вече не се вижда на екрана - "true" ако трябва да бъде завършен и "false" ако не. Стойността по подразбиране е "невярно". Стойността на "вярно" означава, че дейността няма да остави историческа следа. Тя няма да остане в активния стек за задача, така че потребителят няма да може да се върне към него.


0 за отговор № 2

Не знам защо. Но ако не искате да добавите тази активност към текущия стек, можете да настроите android: launchMode = "singleTask" Когато стартирате тази дейност, тя ще бъде добавена към собствения й стек. Можете да видите повече тук въведете описанието на връзката тук Надявам се да помогне :)


0 за отговор № 3

В AndroidManifest.xml поставете този маркер за разрешение над маркера на приложението.

<uses-permission android:name="android.permission.WAKE_LOCK" />