เปิดหน้าจอไว้

บางแอปจำเป็นต้องเปิดหน้าจอไว้ตลอด เช่น แอปเกมหรือแอปภาพยนตร์ Android API บางรายการจะเปิดหน้าจอไว้ให้คุณโดยอัตโนมัติ ในกรณีอื่นๆ คุณสามารถตั้งค่าแฟล็กเพื่อเปิดหน้าจอไว้ด้วยตนเองได้

เปิดหน้าจอไว้ด้วยตนเอง

หากต้องการเปิดหน้าจอของอุปกรณ์ไว้ ให้ตั้งค่าแฟล็ก FLAG_KEEP_SCREEN_ON ในกิจกรรม คุณตั้งค่า Flag นี้ได้เฉพาะในกิจกรรมเท่านั้น ไม่สามารถตั้งค่าในบริการหรือคอมโพเนนต์อื่นๆ ของแอปได้ เช่น

class MainActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
    }
}

อีกวิธีหนึ่งในการเปิดหน้าจอไว้คือการตั้งค่าแอตทริบิวต์ android:keepScreenOn ในไฟล์ XML ของเลย์เอาต์ของแอปพลิเคชัน

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true">
    ...
</RelativeLayout>

การใช้ android:keepScreenOn="true" เทียบเท่ากับการใช้ FLAG_KEEP_SCREEN_ON คุณสามารถใช้วิธีการใดก็ได้ที่เหมาะกับแอปของคุณ ข้อดีของการตั้งค่าแฟล็กแบบเป็นโปรแกรมในกิจกรรมคือช่วยให้คุณมีตัวเลือกในการล้างแฟล็กแบบเป็นโปรแกรมในภายหลัง ซึ่งจะช่วยให้หน้าจอปิดได้

หากแอปที่มีแฟล็ก FLAG_KEEP_SCREEN_ON ทำงานอยู่เบื้องหลัง ระบบจะอนุญาตให้หน้าจอปิดตามปกติ คุณไม่จำเป็นต้องล้างแฟล็กอย่างชัดแจ้งในกรณีนี้ หากแอปไม่จำเป็นต้องเปิดหน้าจอไว้อีกต่อไป คุณควรล้างแฟล็กโดยเรียกใช้ clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

โหมดแอมเบียนท์สำหรับทีวี

ในอุปกรณ์ทีวี ให้ใช้ FLAG_KEEP_SCREEN_ON เพื่อป้องกันไม่ให้อุปกรณ์เข้าสู่โหมดแอมเบียนท์ระหว่างการเล่นวิดีโอ หากกิจกรรมที่ทำงานอยู่เบื้องหน้าไม่ได้ตั้งค่า FLAG_KEEP_SCREEN_ON อุปกรณ์จะเข้าสู่โหมดแอมเบียนท์โดยอัตโนมัติหลังจากไม่มีการใช้งานเป็นระยะเวลาหนึ่ง

ดูเพิ่มเติม