2017-03-21 10 views
0

DidFinishedLaunchingWithOptionsのタスクはどのようにして署名を返しますか?Xamarin iOS:DidFinishedLaunchingWithOptionsで非同期/待機します

bool FinishedLaunching (UIApplication app, NSDictionary options) 

プラットフォーム固有のプロジェクトのPCLからDataManagerの初期化タスクを待つ必要があります。 Androidの特定のプロジェクトでは、を返すメインメソッドにasync修飾子を追加できます。しかし、iOSのメインメソッドはboolを返します。

答えて

1

@apinedaは完全にあなたがであるべきではありませんこれを行う必要があります。しかし、あなたならばHAVE〜...

.GetAwaiter().GetResult()をタスクに呼び出すことができます。

例:

... 
public Task<string> GetSomeStringAsync(); 
... 
var myString = GetSomeStringAsync().GetAwaiter().GetResult(); 
... 

次にあなたが必要なデータを取得します。あなたの17秒のタイムアウトを壊さないように注意してください!

+0

あなたの想像力のある応答をありがとう。私は、PCLアプリケーションクラス内のinitを実行します。 –

3

このメソッドでは初期化を待つべきではありません。これは応答時間が限られています。間違っていなければ24秒です。その時間が過ぎると、アプリケーションはシステムによって強制終了されます。

プラットフォーム固有のプロジェクトでこれを行う必要がある場合は、最初のViewControllerとして「スプラッシュスクリーン」を追加することをお勧めします。ここでは初期化を行い、素敵なアニメーションを追加してユーザーに知らせることもできます。または、初期化が完了したら、この初期化ページをXamarin.Formsプロジェクトに作成し、そこから現在のMainPageに移行することができます。

+0

ご連絡いただきありがとうございます。私は、アプリケーションクラスのPCLでinitを行います。 –

関連する問題