2015-11-26 4 views
0

Я реализую приложение, и оно работает правильно. Теперь я хочу знать, как предотвратить переход на спящий мобильный телефон, в то время как конкретное приложение работает. Я попытался реализовать с помощью бодрствующий замок Теперь я хочу осуществить после того, как дали время экрана запуска заставки и снова сенсорного экран запуск текущего приложения properly.Because использовать просыпается замок телефона просыпается до пользователя приложение run.But далеко за несколько раз, когда я хочу запустить заставку, пока не начнет сноваТелефон проснулся во время запуска приложения

+0

Он не понял, что вы хотите. Используя 'WakeLock' вы можете заставить устройство оставаться бодрым во время работы приложения. –

+0

Вы хотите, чтобы приложение работало или вы хотите, чтобы экран не погас? – RvdK

+0

держите приложение в рабочем состоянии – Kushan

ответ

0

Держите экран На

лучший способ сделать это - использовать FLAG_KEEP_SCREEN_ON в вашей деятельности.

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 вашего приложения, с помощью андроида: атрибут keepScreenOn:

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

Держите процессор на

Если вам нужно сохранить CPU, работающий, чтобы выполнить некоторую работу до того, как устройство перейдет в спящий режим, вы можете использовать функцию системного обслуживания PowerManager, называемую блокировкой слежения. Блокировки отклика позволяют вашему приложению контролировать состояние питания хост-устройства.

Создание и удержание блокировки во время работы могут оказать существенное влияние на срок службы аккумулятора устройства. Таким образом, вы должны использовать блокировки после того, как это строго необходимо, и удерживайте их как можно короче. Например, вам никогда не нужно использовать блокировку слежения в действии. Как описано выше, если вы хотите сохранить экран в своей деятельности, используйте FLAG_KEEP_SCREEN_ON.

Одним из законных случаев использования блокировки бодрствования может быть фоновая служба, которая должна захватить блокировку слежения, чтобы поддерживать работу ЦП, пока экран выключен. Опять же, эта практика должна быть сведена к минимуму из-за ее влияния на срок службы батареи.

Чтобы использовать блокировку бодрствования, то первый шаг, чтобы добавить разрешения WAKE_LOCK в файл манифеста вашего приложения:

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

Если ваше приложение включает в себя приемник вещания, который использует услугу, чтобы сделать какую-то работу, вы можете управляйте блокировкой следа через WakefulBroadcastReceiver, как описано в разделе Использование WakefulBroadcastReceiver. Это предпочтительный подход. Если ваше приложение не следует, что шаблон, вот как вы установили замок бодрствования непосредственно:

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); 
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 
     "MyWakelockTag"); 
wakeLock.acquire(); 

Чтобы снять блокировку пробуждения по телефону wakelock.release(). Это освобождает ваше требование к процессору. Важно освободить блокировку слежения, как только ваше приложение закончит использовать его, чтобы избежать слива батареи.

+0

эта помощь для меня, чтобы получить правильное представление. Спасибо! – Kushan

0

Добавить это разрешение в манифесте:

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

И добавить это в OnCreate:

@Override 
    protected void onCreate(Bundle icicle) { 
     super.onCreate(icicle);  
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    } 
Смежные вопросы