Başımın üzerine çiziyorum.Evrensel Windows Uygulaması Arka Plan Görevi "kod 1 (0x1)" ile çıkıldı "
UWP uygulamasında her 15 dakikada bir (TimeTrigger
kullanarak) ve Internet kullanılabilir olduğunda (bir SystemTrigger
kullanarak) kaydedilmiş bir arka plan görevim var. Görsel stüdyo kullanarak hata ayıklama yaparken, bunların "Yaşam Döngüsü Etkinlikleri" nde göründüğü gibi doğru bir şekilde kaydedildiğini biliyorum. Yine de, onları kayıt için benim kod aşağıda: Ben görevler benim manifest'te doğru beyan dikkat ettik
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();
}
. Onlar olmasaydı, uygulamam onları kaydetmeye çalışırken bir istisna atardı.
Hata ayıklama modunda çalışırsam, Yaşam Döngüsü Etkinlikleri'nde hem BackgroundGPS
hem de InternetAvailGPS
öğelerinin göründüğünü görebiliyorum. Ancak, ne zaman yürütmek için zorlamak bunlardan birini tıklayın ben çıktı penceresinde aşağıdaki olsun:
The program '[4728] backgroundTaskHost.exe' has exited with code 1 (0x1).
Ben benim 'Run' yönteminde kodunun ilk satırında ayarlanmış bir kesme noktası var arka plan görevi ancak bu asla vurulmadı. Arka plan görevi hiçbir zaman yüklenmez ve kaçmaz ve nedenini bilmiyorum. Bu muhtemelen benim Çalıştır yöntemi ile bir sorun değildir, ancak (Ben bunu çok et ihmal ve sadece başını ve sonunu yer verdik) Bu hem çalıştık
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();
}
}
şöyle Bir Windows Phone ve bir Windows Tablet hem çalıştıran 10.0.10586.164, ve her ikisi de arka plan görevimi yürütmüyor.
Yukarıda belirttiğim gibi, bunlar birkaç hafta önce mükemmel bir şekilde çalışıyorlardı ve uygulamanın bazılarının şikayetçi olduğu bir şeylerin yanlış olduğunu fark ettiler!
Her türlü yardım büyük beğeni topluyor.