mirror of
https://github.com/zxing/zxing.git
synced 2025-03-05 20:48:51 -08:00
Avoid weird case where batter status listener is unregistered without being registered?
git-svn-id: https://zxing.googlecode.com/svn/trunk@2894 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
f84c8470a4
commit
23ed9a790c
|
@ -36,11 +36,13 @@ final class InactivityTimer {
|
||||||
|
|
||||||
private final Activity activity;
|
private final Activity activity;
|
||||||
private final BroadcastReceiver powerStatusReceiver;
|
private final BroadcastReceiver powerStatusReceiver;
|
||||||
|
private boolean registered;
|
||||||
private AsyncTask<?,?,?> inactivityTask;
|
private AsyncTask<?,?,?> inactivityTask;
|
||||||
|
|
||||||
InactivityTimer(Activity activity) {
|
InactivityTimer(Activity activity) {
|
||||||
this.activity = activity;
|
this.activity = activity;
|
||||||
powerStatusReceiver = new PowerStatusReceiver();
|
powerStatusReceiver = new PowerStatusReceiver();
|
||||||
|
registered = false;
|
||||||
onActivity();
|
onActivity();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,17 +52,27 @@ final class InactivityTimer {
|
||||||
inactivityTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
inactivityTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onPause() {
|
public synchronized void onPause() {
|
||||||
cancel();
|
cancel();
|
||||||
activity.unregisterReceiver(powerStatusReceiver);
|
if (registered) {
|
||||||
|
activity.unregisterReceiver(powerStatusReceiver);
|
||||||
|
registered = false;
|
||||||
|
} else {
|
||||||
|
Log.w(TAG, "PowerStatusReceiver was never registered?");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onResume(){
|
public synchronized void onResume() {
|
||||||
activity.registerReceiver(powerStatusReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
if (registered) {
|
||||||
|
Log.w(TAG, "PowerStatusReceiver was already registered?");
|
||||||
|
} else {
|
||||||
|
activity.registerReceiver(powerStatusReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||||
|
registered = true;
|
||||||
|
}
|
||||||
onActivity();
|
onActivity();
|
||||||
}
|
}
|
||||||
|
|
||||||
private synchronized void cancel() {
|
private synchronized void cancel() {
|
||||||
AsyncTask<?,?,?> task = inactivityTask;
|
AsyncTask<?,?,?> task = inactivityTask;
|
||||||
if (task != null) {
|
if (task != null) {
|
||||||
task.cancel(true);
|
task.cancel(true);
|
||||||
|
|
Loading…
Reference in a new issue