Windows PhoneでFolderPicker.PickSingleFolderAsyncの実装にバグがあると思います。その関数を呼び出すと何らかのエラーが発生したように見え、通常のコード実行フローが停止します。モバイルでFolderPicker.PickSingleFolderAsyncに問題がある人は誰ですか?
しかし、デバッガを付けずにアプリケーションを実行した場合にのみ間違った動作が発生するため、何が起こっているのかを正確に把握することができません。私は、さらに問題を調査してきたと私はこれは、ユーザーがファイルピッカーと対話している間、アプリが中断されることによって引き起こされていると信じて
更新
public async Task<bool> UserSelectFolderAsync()
{
var picker = new FolderPicker();
picker.SuggestedStartLocation = PickerLocationId.Desktop;
picker.FileTypeFilter.Add(".");
await ShowDialogAsync("Picking folder");
var folder = await picker.PickSingleFolderAsync();
await ShowDialogAsync("Picked folder");
if (folder == null)
return false;
StorageApplicationPermissions.FutureAccessList.Clear();
selectedFolder = folder;
StorageApplicationPermissions.FutureAccessList.Add(selectedFolder);
return true;
}
private async Task ShowDialogAsync(string message)
{
MessageDialog showDialog = new MessageDialog(message);
await showDialog.ShowAsync();
}
:
は、次のコードを考えてみましょう。
モバイルでは、ピッカーを呼び出すと、別のアプリを開き、ファイルエクスプローラを開き、フォアグラウンドで設定することをアプリライフサイクルの観点から通常の意味で行います。
- 場所への移動、ファイルピッカー
- を開く:私は非常に最初のピッカーページでデバイスやSDカードをクリックonless私はかなり確実で取り付けデバッガとエミュレータ上で問題を再現することができましたピッカーは、アプリを中断フォアグラウンドアプリ
- として引き継ぐように思えません:「デバッグ場所」ツールバーからクリックします一時停止ボタン
- ピッカーメートルで
での選択を確認しますどんな場合でも、これはどんなコードが続くかにかかわらず、
await picker.PickSingleFolderAsync();
ステートメントを実行しません。
のWindows Phone 8にピッカーに対処する方法は、アプリのサスペンションを扱う
picker.PickFolderAndContinue();
と明示的に使用して意味残念ながら、そうすることのWindows 10上ではもはや不可能である:上記のメソッドを呼び出すと例外がスローされます。
* Suspending *または* EnteringBackground *(再開と離脱)のイベントがありますか? – Romasz
いいえ、私は何もありません – Alberto
私はあなたのコードでテストしましたが、問題を再現できません。実際のデバイスでテストしましたか? Windows 10では、 'FolderPicker'の動作はWindows 8.1の動作と異なります。 'PickFolderAndContinue'メソッドを使う必要はありません。 – Scavenger