Я пытаюсь выяснить, как реализовать прослушиватель событий (не уверен, что это правильный термин). Я хочу, чтобы служба после запуска моего приложения прослушивала состояние питания телефонов. Я не уверен, как Android справится с этой ситуацией, поэтому не знаю, что искать. Я работал с этим кодом, который использует широковещательный приемник:
BroadcastReceiver receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
unregisterReceiver(this);
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
if (plugged == BatteryManager.BATTERY_PLUGGED_AC) {
// on AC power
Toast.makeText(getApplicationContext(), "AC POWER", Toast.LENGTH_LONG).show();
} else if (plugged == BatteryManager.BATTERY_PLUGGED_USB) {
// on USB power
Toast.makeText(getApplicationContext(), "USB POWER", Toast.LENGTH_LONG).show();
startActivity(alarmClockIntent);
} else if (plugged == 0) {
Toast.makeText(getApplicationContext(), "On Battery", Toast.LENGTH_LONG).show();
} else {
// intent didnt include extra info
}
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(receiver, filter);
Код работает нормально. Когда я открываю свое приложение, оно показывает, каково текущее состояние телефона.
Вот что я пытаюсь сделать:
- Когда пользователь запускает приложение, оно фактически включает службу
- Пользователь может использовать телефон, но как только он подключен, мой сервис поймает это и использует код выше
Как мне адаптировать этот код для достижения вышеуказанных целей?