Есть приложение с выводом на экран текущего значения заряда батареи. Код:
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
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости