私はUWPアプリケーションを開発しています。現在のアプリケーション状態がアクティブまたは中断されている場合は、15秒ごとに自分の位置を送信する必要があります。私は2つの異なるアプローチを試してみました:アプリはDispatcherは利用できない中断されたときに、アプリケーションがUWP - バックグラウンドタスク - 短い間隔
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
{
await UpdateMethod(data);
});
と
var taskResult = await backgroundTrigger.RequestAsync(taskParameters);
ExtendedExecution
- が正常に動作します
ExtendedExecution +バックグラウンドタスク+アプリケーショントリガー
- アプリがアクティブであるときそれが正常に動作し
- アプリは、私が
プライベート非同期ボイド同期(オブジェクト同期) { var data = sync as string; (データ!= NULL)場合 は{を待つCoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal、非同期()=> { は_dlを待ちます。UpdateLocation(data); //この行のブレークポイントは決してヒットしません }); } PC(10586&14393)2錠を試しましたが、これは機能しません。私は ExtendedExecutionReason.LocationTrackingを使用しています。 – lijevosmetalo
@lijevosmetalo私は14393で公式のサンプルをテストしましたが、動作します。シナリオ3をテストし、公式のサンプルに続いてコードを修正してください。あなたの問題を1つのコード行だけで解決することはできません。それでも問題が解決しない場合は、再生プロジェクト全体をアップロードしてください。 –
公式サンプルは私にとっては役に立たない。シナリオ3を試して、ブレークポイントを140行目(または140〜159行目)に置いてください。シナリオを開始し、VSからアプリケーションを停止します。 OnTimerメソッドでDispatcherを使用しないシナリオ1は正常に動作し、シナリオ3は正常に動作しません。 – lijevosmetalo