2015-11-29 2 views
0

Я много борюсь с сохранением моего экрана между действиями, когда у меня есть некоторые расчеты.Android keep screen на флагове не работает с целями деятельности

Вот ситуация, я сделать намерение от активности A к B.

Intent intentCalculator = new Intent(this, CalculatorActivity.class); 
intentCalculator.putExtra(CalculatorActivity.BANK,"20"); 
intentCalculator.putExtra(CalculatorActivity.DURATION,"365"); 

startActivity(intentCalculator); 

Тогда на активность B:

protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_calculator); 

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

     //tool bar 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setTitle(getResources().getString(R.string.nav_calculator)); 

     //get intent 
     Intent intent = getIntent(); 

     bank = new BigDecimal(intent.getStringExtra(CalculatorActivity.BANK)); 
     duration = Integer.parseInt(intent.getStringExtra(CalculatorActivity.DURATION)); 

     //load data 
     loadData(); 

    } 

Макет "activity_calculator" представляет собой макет координатор, который включает в себя относительная компоновка. Метод loadData - это тот, который занимает много времени, чтобы заполнить таблицу из относительной компоновки и заставить экран отключиться.

Я уже поставил FLAG_KEEP_SCREEN_ON на создание и андроид: keepScreenOn = "true" на обеих макетах, и мой экран продолжает отключаться.

Я понятия не имею, что я делаю неправильно, пожалуйста, мне нужна помощь.

спасибо за внимание, С наилучшими пожеланиями

+0

проверка ниже ответ, – Androider

ответ

0

Попробуйте использовать некоторые дополнительные флаги, как:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
       WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
       WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | 
       WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

Если проблема не устраняется, а также попытаться использовать атрибут android:keepScreenOn="true" в корневой зрения расположения вашей деятельности в

Другой способ заключается в приобретении и освобождении вакелока для сохранения экрана:

final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,"");  
mWakeLock.acquire(); 

давали разрешение:

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

Для получения более подробной информации посетите: http://developer.android.com/training/scheduling/wakelock.html

Благодаря

+0

я попытался установить флаги как на активности А и В, и атрибут андроид: keepScreenOn = "true" в действиях корневого макета, и экран продолжает отключаться. – user3111591

+0

Есть еще несколько вещей в моем ответе, пожалуйста, попробуйте использовать их – Androider

+0

Но должен ли я использовать его с устаревшим флагом? – user3111591