Counting the docs, it looks like BroadcastReceiver is running in a different process, I'm not 100% sure ( BroadcastReceiver life cycle )
, BroadcastReceiver ( , onReceive (, Intent)),
, onReceive, , , , .
, Activity BroadcastReceiver, , . , onResume (, ZXing)
public void onResume(){
activity.registerReceiver(powerStatusReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
[...]
}
public void onPause() {
[...]
activity.unregisterReceiver(powerStatusReceiver);
}
BroadcastReceiver
final class InactivityTimer {
[onResume, onPause, rest of the stuff ...]
private final class PowerStatusReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){
if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
int batteryPlugged = intent.getIntExtra("plugged", -1);
if (batteryPlugged > 0) {
InactivityTimer.this.cancel();
}
}
}
}
}
, BroadcastReceiver ( , onReceive). MapActivity , , , .
, , Activity BroadcastReceiver SMS-. , , , .