Подтвердить что ты не робот

Правильный метод setKeepScreenOn/FLAG_KEEP_SCREEN_ON

Я использую метод setKeepScreenOn (true) и не смог выяснить, как вызвать это по отношению к текущему Activity (который имеет набор содержимого). Я смог заставить его работать, называя его на одной из моих кнопок, которая всегда присутствует в представлении, но это кажется неправильным - и я уверен, что должен быть способ обойти это. Я попытался ссылаться на текущий фокус следующим образом:

getCurrentFocus().setKeepScreenOn(true);

но это вызвало исключение NullPointerException. Возможно, в настоящее время не было никакого внимания. Итак, может ли кто-нибудь сказать мне, как я могу ссылаться на класс представления, в котором я работаю внутри? Спасибо:)

4b9b3361

Ответ 1

Попробуйте этот ответ:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

getWindow - это метод, определенный для действий, и вам не потребуется сначала искать View.

Ответ 2

Как сказал Хоук, но плохо объяснил.

Вы также можете использовать FLAG_KEEP_SCREEN_ON в вашем файле макета XML.

Обратите внимание на android:keepScreenOn="true"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:keepScreenOn="true"
    android:orientation="vertical" >

    <!-- whatever is in your layout -->

</LinearLayout>

Теперь я написал все варианты сохранения экрана в блоге:
http://blog.blundellapps.com/tut-keep-screen-onawake-3-possible-ways/

Ответ 3

Установить android:keepScreenOn в XML

Ответ 4

Если вы делаете это в классе extends View. Вы можете просто:

this.setKeepScreenOn(true);

Ответ 5

В Google Docs для разработчиков Android у вас есть два пути:

Первый способ:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}

Второй способ - добавить в свой XML-макет этот атрибут: android:keepScreenOn="true"