Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

BACKGROUNDTASKHOST.EXE' has exited with code 1 (0x1) - Geofence issue

I am writing Windows Phone 8.1 Application using GeoFence API. My problem is that I can't trigger change of location in Background Task, because app exits with code 1.

I have read multiple threads about this error, but no solution solved my problem.

  • I have checked if my BackgroundTask is a Runtime Component, and it is.
  • I have checked name of my class and it is correct.
  • I have checked if I use any await function in my BackgroundTask function and I didn't find any.
  • I have checked if I registered Background Task in app manifest and yes, I did (with entry point ofc)

In fact error appears even before running Run function from BackgroundTask.

    namespace BackgroundTask
{
    public sealed class geoFenceBackgroundTask : IBackgroundTask
    {
        public void Run(IBackgroundTaskInstance taskInstance)
        {
            ToastTemplateType toastTemplate = ToastTemplateType.ToastText02;
            XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);

            XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
            toastTextElements[0].AppendChild(toastXml.CreateTextNode("MY APP"));
            toastTextElements[1].AppendChild(toastXml.CreateTextNode("Test"));

            //IXmlNode toastNode = toastXml.SelectSingleNode("/toast");
            //XmlElement audio = toastXml.CreateElement("audio");

            ToastNotification toast = new ToastNotification(toastXml);
            ToastNotificationManager.CreateToastNotifier().Show(toast);
        }
    }
}

And my register function:

    async private void RegisterBackgroundTask()
        {
            // Get permission for a background task from the user. If the user has already answered once,
            // this does nothing and the user must manually update their preference via PC Settings.
            BackgroundAccessStatus backgroundAccessStatus = await BackgroundExecutionManager.RequestAccessAsync();

            // Regardless of the answer, register the background task. If the user later adds this application
            // to the lock screen, the background task will be ready to run.
            // Create a new background task builder
            BackgroundTaskBuilder geofenceTaskBuilder = new BackgroundTaskBuilder();

            geofenceTaskBuilder.Name = "geoFenceBackgroundTask";
            geofenceTaskBuilder.TaskEntryPoint = "BackgroundTask.geoFenceBackgroundTask";

            // Create a new location trigger
            var trigger = new LocationTrigger(LocationTriggerType.Geofence);

            // Associate the locationi trigger with the background task builder
            geofenceTaskBuilder.SetTrigger(trigger);

            // If it is important that there is user presence and/or
            // internet connection when OnCompleted is called
            // the following could be called before calling Register()
            // SystemCondition condition = new SystemCondition(SystemConditionType.UserPresent | SystemConditionType.InternetAvailable);
            // geofenceTaskBuilder.AddCondition(condition);

            // Register the background task

            var geofenceTask = geofenceTaskBuilder.Register();
            geofenceTask.Completed += (sender, args) =>
            {
// MY CODE HERE

            };

            geofenceTask = geofenceTaskBuilder.Register();            
        }

I have no other ideas. Any help?

like image 330
rzuf Avatar asked Sep 19 '14 21:09

rzuf


1 Answers

just stumbled upon a similar issue (Visual Studio stopped Debugging when I started the Background Task over the "Lifecyle-Events-Dropdown", stating "BACKGROUNDTASKHOST.EXE' has exited with code 1 (0x1)" in the Console-Output-Window.

Adding the missing reference to my Tasks-Assembly (winmd) Project in the WP8 Project solved it.

like image 60
earloc Avatar answered Nov 09 '22 00:11

earloc