It's a known issue in android code
new java code (from ics):
Code:
private final class ServiceHandler extends Handler {
public ServiceHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
processMessage(msg);
// NOTE: We MUST not call stopSelf() directly, since we need to
// make sure the wake lock acquired by AlertReceiver is released.
AlertReceiver.finishStartingService(AlertService.this, msg.arg1);
}
}
old code:
Code:
private final class ServiceHandler extends Handler {
public ServiceHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
processMessage(msg);
AlertService.this.stopSelfResult(msg.arg1);
}
}
To reproduce the wakelock, create a tomorrow remainder then select to notify 1 day before the event, so when you save it you will get a notify. Now open batterystats and check wakelocks and refresh you will see a StartingAlertService Wakelock and will be always active, press refresh and you will see the time increased.