2013-05-12 4 views
1

У меня есть программа для поиска яркости и ее работы. Тогда проблема заключается в том, что, когда я нажимаю кнопку назад, чтобы перейти к другой деятельности, яркость возвращается к значению по умолчанию ..Яркость не сохраняется, когда нажата кнопка «Назад»

Вот мой код, чтобы изменить яркость:

private void applyBrightnessListener() { 
    SeekBar brightnessControl = (SeekBar) findViewById(R.id.brightnessControl); 

    brightnessControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { 
      // TODO Auto-generated method stub 
      float BackLightValue = (float)arg1/100; 
      WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
      layoutParams.screenBrightness = BackLightValue; 
      getWindow().setAttributes(layoutParams); 
      android.provider.Settings.System.putInt(
       GeneralSettings.this.getContentResolver(), 
       android.provider.Settings.System.SCREEN_BRIGHTNESS, 
       (int)BackLightValue); 
     } 

     @Override 
     public void onStartTrackingTouch(SeekBar arg0) { 
     // TODO Auto-generated method stub 
     } 

     @Override 
     public void onStopTrackingTouch(SeekBar arg0) { 
     // TODO Auto-generated method stub 
     } 
    }); 
} 

Большое спасибо заранее;)

+0

Похоже, вы пытаетесь изменить уровень яркости на глобальном уровне, проверяете, включен ли автоматический режим или нет? – ozbek

+0

Автоматический режим отключен – TiagoM

ответ

1

К сожалению, вам необходимо отследить эту яркость и установить ее для каждого вида деятельности. Вы не можете установить его один раз и оставить его.

Таким образом, вам нужно сохранить значение в своих настройках или каким-либо другим способом, затем, когда вы начнете каждое действие, загрузите предпочтение и установите его в своей деятельности.

Одним из хороших способов является подкласс Activity и поместить этот код в метод onCreate.

   WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
       layoutParams.screenBrightness = savedBackLightValue; 
       getWindow().setAttributes(layoutParams); 
+0

Спасибо за ваш ответ! omg действительно? И каждый раз, когда я делаю новое действие в своем приложении, мне нужно будет продлить его? : s – TiagoM

+1

Да. Это звучит как боль, но если вы подклассифицируете вещи, вам нужно только написать его один раз (или несколько раз, если у вас есть несколько видов деятельности) – HalR

+0

Да, у меня есть 10 видов деятельности, но я проверю их, и если он работает, по крайней мере, является решением:/Лучше, чем ничего – TiagoM

Смежные вопросы