Продолжать работу при блокировке экрана, когда экраны отключены

Поэтому я создал приложение, которое работает как замена экрана блокировки. Я использую широковещательный приемник и службу, чтобы начать свою деятельность после Intent.ACTION_SCREEN_OFF. Так что каждый раз, когда пользователь блокирует экран, начинается моя активность, затем, когда они нажимают кнопку разблокировки, моя активность уже работает на экране блокировки. Но это работает только в том случае, если пользователь пытается разбудить/разблокировать телефон через короткий промежуток времени. Если они будут ждать слишком долго, активность исчезнет. Я не уверен, почему это происходит и что я могу сделать, чтобы сохранить активность, независимо от того, как долго пользователь ждет, чтобы попытаться разблокировать свой телефон.

Я подумал и попытался прослушать Intent.ACTION_SCREEN_ON, но затем возникает задержка между моментом, когда пользователь нажимает кнопку питания на своем телефоне, чтобы разбудить его, и моментом, когда приложение загружается и отображается на экране. Во время этого промежутка пользователь может видеть ОС Android

-. 121 ---1503584- Выполнение рабочего процесса из JavaScript в CRM 2011 Я пытаюсь выполнить рабочий процесс для записей, выбранных в представлении, с помощью кнопки на ленте. У меня есть рабочий пример с использованием «устаревших» сервисов для совместимости с CRM 4 :, функция invokeWorkflow (...

. Я пытаюсь выполнить рабочий процесс для записей, выбранных в представлении, с помощью кнопки на ленте. У меня есть рабочий пример использования «устаревших» сервисов для совместимости с CRM 4 :

function invokeWorkflow(workflowId, entityId) {
    var request =
        '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
        '               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
        '               xmlns:xsd="http://www.w3.org/2001/XMLSchema">' +
           GenerateAuthenticationHeader() +
        '  <soap:Body>' +
        '    <Execute xmlns="http://schemas.microsoft.com/crm/2007/WebServices">' +
        '      <Request xsi:type="ExecuteWorkflowRequest">' +
        '        <EntityId>' + entityId + '</EntityId>' +
        '        <WorkflowId>' + workflowId + '</WorkflowId>' +
        '      </Request>' +
        '    </Execute>' +
        '  </soap:Body>' +
        '</soap:Envelope>';

    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/MSCRMservices/2007/crmservice.asmx', false);

    xhr.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');
    xhr.setRequestHeader('SOAPAction', 'http://schemas.microsoft.com/crm/2007/WebServices/Execute');

    xhr.send(request);
}

. Однако я хочу написать это, используя службы CRM 2011, чтобы повысить удобство сопровождения для будущих выпусков. Вот что я пробовал до сих пор, но это не работает -код возврата вызова HTTP 500 (Внутренняя ошибка сервера ).

function invokeWorkflow(workflowId, entityId) {
    var request =
        '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
        '               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
        '               xmlns:xsd="http://www.w3.org/2001/XMLSchema">' +
        '  <soap:Body>' +
        '    <Execute xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services">' +
        '      <Request xsi:type="ExecuteWorkflowRequest">' +
        '        <EntityId>' + entityId + '</EntityId>' +
        '        <WorkflowId>' + workflowId + '</WorkflowId>' +
        '      </Request>' +
        '    </Execute>' +
        '  </soap:Body>' +
        '</soap:Envelope>';

    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/XRMServices/2011/Organization.svc/web', true);

    xhr.setRequestHeader('Accept', 'application/xml, text/xml, */*');
    xhr.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');
    xhr.setRequestHeader('SOAPAction', 'http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute');

    xhr.onreadystatechange = function () { alert(xhr.status); };
    xhr.send(request);
}

Кто-нибудь знает, что не так со вторым скриптом?Я пытался найти это в Google как можно лучше, но каждый найденный мной пример, который утверждает, что он предназначен для CRM 2011, на самом деле просто использует службы совместимости CRM 4 (, как и в первом примере ). Второй пример я взял из образца из CRM 2011 SDK, хотя он не включает в себя пример объекта ExecuteWorkflowRequest, поэтому лучше -только предположить.

Спасибо!

5
задан Alec 18 July 2012 в 16:18
поделиться