0

所以這裏是我的活動。屏幕鎖定時當前活動消失

<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> 

我把它標記爲android:noHistory =「true」,因爲我不希望屏幕被添加到活動堆棧中。

但是,當我鎖定屏幕並解鎖它。該活動消失並顯示前一個屏幕。這不應該發生。有誰能告訴我爲什麼。

注:發生在ICS(三星Galaxy Note),但與以前的設備(薑餅等)

+0

請問您的活動叫'完成()'在'的onPause()'方法?這是我見過的很常見的事情 – JRaymond

回答

3

設置在活動noHistory屬性意味着,只要用戶從活動導航離開 - 造就了鎖屏包括 - 它的光潔度()函數被自動調用,從而破壞它,去回到產生它的前​​一個活動。

這通常用於閃屏式活動,其中,例如,僅充當發射器和你不希望用戶能夠回到初始屏幕從孩子。

如果這不是你的本意,那麼你應該考慮刪除noHistory屬性,也許管理活動的生命週期自己。 (例如,如果你不想讓你的活動是在棧,然後只需調用完成()啓動另一個活動之後。)

android:noHistory

活動是否或不應該從 刪除活動堆棧和成品(稱爲它的光潔度()方法)時 用戶導航遠離它,它不再是可見的屏幕上 - 「真」,如果它應該完成,而「假」如果不是。默認值 是「false」。值爲「true」意味着該活動不會離開歷史追蹤。它不會保留在 任務的活動堆棧中,因此用戶將無法返回。

+0

是的,這是我最終做的... android:noHistory對於我想要的不是很正確的東西... – mukund

0

我不知道爲什麼。但是,如果您不想將此活動添加到當前堆棧中。你可以設置android:launchMode =「singleTask」。當開始這個活動時,它將被添加到它自己的堆棧中。 你可以在這裏看到更多enter link description here 希望它有幫助:)

0

在AndroidManifest.xml中把這個權限標籤放在應用標籤上面。

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