Universal Windows App Background Task “has exited with code 1 (0x1)”

∥☆過路亽.° 提交于 2019-12-25 06:29:12

问题


Scratching my head on this one.

I've got a background task in my UWP application which is registered to run every 15 minutes (using TimeTrigger) and whenever the internet becomes available (using a SystemTrigger). I know for a fact that these are registered correctly as both appear in the "Lifecycle Events" when debugging using visual studio. Nevertheless, my code for registering them is below:

bool registered1 = false;
bool registered2 = false;
foreach (var task in BackgroundTaskRegistration.AllTasks)
{
    if (task.Value.Name == "BackgroundGPS")
    {
        registered1 = true;
    }

    if (task.Value.Name == "InternetAvailGPS")
    {
        registered2 = true;
    }
}

await BackgroundExecutionManager.RequestAccessAsync();

if (!registered1)
{
    var builder1 = new BackgroundTaskBuilder();

    builder1.Name = "BackgroundGPS";
    builder1.TaskEntryPoint = "BackgroundTasks.BackgroundGPSTask";

    var triggerTime = new TimeTrigger(15, false);

    builder1.SetTrigger(triggerTime);

    BackgroundTaskRegistration task1 = builder1.Register();

}

if (!registered2)
{
    var builder2 = new BackgroundTaskBuilder();

    builder2.Name = "InternetAvailGPS";
    builder2.TaskEntryPoint = "BackgroundTasks.BackgroundGPSTask";

    var triggerIA = new SystemTrigger(SystemTriggerType.InternetAvailable, false);

    builder2.SetTrigger(triggerIA);

    BackgroundTaskRegistration task2 = builder2.Register();
}

I have ensured that the tasks are declared correctly in my manifest. If they weren't, my app would be throwing an exception when trying to register them.

If I run in debug mode I can see that both BackgroundGPS and InternetAvailGPS are shown in the Lifecycle Events. However, when I click on either of them to force them to execute, I get the following in the output window:

The program '[4728] backgroundTaskHost.exe' has exited with code 1 (0x1).

I have a breakpoint set at the first line of code in my 'Run' method of the background task but this is never hit. The background task is never loaded nor run, and I've no idea why. This probably isn't an issue with my Run method, but it looks like this (I've omitted much of the meat of it, and just included the beginning and end)

public async void Run(IBackgroundTaskInstance taskInstance)
{
    Debug.WriteLine("GPS Started");
    int errCode = 0;
    try
    {
        _deferral = taskInstance.GetDeferral();
        saveGPSStatus(DateTime.Now.ToString(), "", " ");

        var access = await Geolocator.RequestAccessAsync();

        if (access != GeolocationAccessStatus.Allowed)
        {
            Debug.WriteLine("No access");
            saveGPSStatus("", "", "No GPS Access");
            return;
        }

        Geolocator locator = new Geolocator();
        locator.DesiredAccuracyInMeters = 100;

        Geoposition position = await locator.GetGeopositionAsync();

         //Stuff goes on in here

        _deferral.Complete();
    }
    catch (Exception e)
    {
        Debug.WriteLine(e.Message);
        saveGPSStatus("", "", "Unexpected error. Err code "+errCode+". " + e.Message);
        _deferral.Complete();
    }

}

I have tried this both on a Windows Phone and a Windows Tablet both running build 10.0.10586.164, and they both do not execute my background task.

As I said above, these were working perfectly a few weeks ago and have only realised something was wrong as some of the app's users have been complaining!

Any help is greatly appreciated.


回答1:


Got it working in the end, I was simply missing a reference to my background task project within my main project. I must have deleted it by accident at some point before that.




回答2:


Just to expand on not having it referenced, not having the correct TaskEntryPoint namespace and class name will also cause this error. For me, I misspelt the class name.



来源:https://stackoverflow.com/questions/36353382/universal-windows-app-background-task-has-exited-with-code-1-0x1

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!