Есть приложение с выводом на экран текущего значения заряда батареи. Код:
public class MainActivity extends Activity {
BroadcastReceiver batteryLevelReceiver = null;
boolean batteryLevelRegistered = false;
TextView battLevel;
IntentFilter batteryLevelFilter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
batteryStat();
registerReceiver(batteryLevelReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
public void batteryStat() {
battLevel = (TextView) findViewById(R.id.battery);
batteryLevelReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
context.unregisterReceiver(this);
batteryLevelRegistered = false;
int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
int level = -1;
if (rawlevel >= 0 && scale > 0) {
level = (rawlevel * 100) / scale;
}
if (battLevel != null) {
String add_text = "";
if (plugged == BatteryManager.BATTERY_PLUGGED_AC) {
add_text = " AC";
} else if (plugged == BatteryManager.BATTERY_PLUGGED_USB) {
add_text = " USB";
}
battLevel.setText(level + "%" + add_text);
}
}
;
};
}
}
Дело в том, что при запуске приложения оно показывает текущий заряд, но вот при длительной роботе, если заряд уменьшился скажем, приложение все равно показывает то значение, которое появилось при его запуске. То есть для того чтобы обновить значение заряда на экране, нужно закрыть и обратно запустить программу. Как сделать так, что приложение автоматически обновляло значение на экране, соответственно с зарядом батареи? Типа как в статусбаре.
Вы явно отписываетесь от обновлений в строчке context.unregisterReceiver(this);
. Отписываться надо при завершении активити. В onStop
или onDestroy
или onPause
- в зависимости от того, где подписываетесь на уведомления. Попробуйте перенести эту строку в onDestroy
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день, помогите исправить, суть такая есть исходный документ (шаблон) его нужно изменять, меняя часть шаблонного текста на нужную, но проблема...
SQL работает отлично и выводит все как нужноХочу переписать его на criteria api, я написал вот такой метод
Подскажите, есть раздел про то, как удержать права доступа, дескать сделать такое можно, но на примерах и на практике не нашел реализации,...