1
他のアプリからのオーディオファイルを受け入れるxamarin iOSアプリがあります。たとえば:それは郵送用のアプリケーションからオーディオ(.mp3)ファイルを受け入れます。 OpenURL
メソッドでは、ファイルを保存してxmlファイルに新しいエントリを作成する機能があります。私が想定しているこの作業は17秒以上かかるので、アプリケーションがクラッシュします。iOSのアプリデリゲートメソッドが17秒以上かかる
public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
{
return this.Upload(url).Result;
}
async public Task<bool> Upload(NSUrl SharedUri)
{
await SomeUploadTask();
return true;
}
あなたはアプリをブロックしているように聞こえますが、別のスレッドでこの機能を非同期処理として実行する必要があります。このタスクがバックグラウンドで実行されている間、あなたは17秒以内にあなたの機能に戻ることができます。おそらく、これはhttps://developer.xamarin.com/guides/cross-platform/advanced/async_support_overview/ – Hodson
@ Hodsonに役立ちます。クイックレスポンスをありがとう、私はopenURLメソッドでタスクを待つことができません、私はエラーが表示されます: 'The 'await'演算子は、非同期メソッド内でのみ使用できます。このメソッドを 'async'修飾子でマークし、その戻り値の型を 'Task'に変更します。openURL非同期メソッドを作成すると、新しいエラーがスローされます。 –
Arti
@Arti解決策を見つけましたか?投稿できますか? – Lijo