WakefulIntentService разъяснения реализации

CommonsWare-хWakefulIntentService работает красиво, но есть некоторые вещи, которые я не совсем понимаю. Ниже приводится ядро, сервис - урезанная версияисточник :

class WIS extends IntentService {

    private static final String NAME = WIS.class.getName() + ".Lock";
    private static volatile WakeLock lockStatic = null;

    synchronized private static PowerManager.WakeLock getLock(Context context) {
        if (lockStatic == null) {
            PowerManager mgr = (PowerManager) context
                    .getSystemService(Context.POWER_SERVICE);
            lockStatic = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, NAME);
            lockStatic.setReferenceCounted(true);
        }
        return (lockStatic);
    }

    public static void startWIS(Context ctxt, Intent i) {
        getLock(ctxt.getApplicationContext()).acquire();
        ctxt.startService(i);
    }

    public WIS(String name) {
        super(name);
        setIntentRedelivery(true);
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        PowerManager.WakeLock lock = getLock(this.getApplicationContext());
        if (!lock.isHeld() || (flags & START_FLAG_REDELIVERY) != 0) { // ?
            lock.acquire();
        }
        super.onStartCommand(intent, flags, startId);
        return (START_REDELIVER_INTENT);
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        try {
            // do your thing
        } finally {
            PowerManager.WakeLock lock = getLock(this.getApplicationContext());
            if (lock.isHeld()) lock.release();
        }
    }
}

Вопросов

Что произойдет, если процесс будет убит сразу послеonReceive() нашего приемника тревоги возвращается? Это если сервисonCreate() (если служба еще не создана) илиonStartCommand() никогда не беги. AFAIK убитый процесс берет свои замки с ним. Или это невозможный сценарий?С учетом предыдущего следует(flags & START_FLAG_RETRY) быть добавленным?Почемуif (!lock.isHeld()) проверить ?Почемуthis.getApplicationContext() нужен? не являетсяthis довольно ?

Ответы на вопрос(2)

Ваш ответ на вопрос