2016-12-22 25 views
0

MvvmCrossとAndHUDを使用して進行状況ダイアログを表示するアンドロイドアプリで作業します。 IDialogServiceインターフェイスとAndroidでの実装を作成しました:Commandで呼び出されたときにAndHUDダイアログが表示されない

protected Activity CurrentActivity => Mvx.Resolve<IMvxAndroidCurrentTopActivity>().Activity; 


    /// <summary> 
    ///  Shows a loading dialog on the whole display. 
    /// </summary> 
    public void ShowLoadingDialog() 
    { 
     AndHUD.Shared.Show(CurrentActivity, Strings.LoadingLabel); 
    } 

    /// <summary> 
    ///  Closes the Loading Dialog. 
    /// </summary> 
    public void HideLoadingDialog() 
    { 
     AndHUD.Shared.Dismiss(CurrentActivity); 
    } 

インターフェイスはコンストラクタ経由で注入されます。私がコンストラクタを呼び出すとき:

 dialogService.ShowLoadingDialog(); 

それは完全に動作します。 しかし、私がコマンドで呼び出すと何も起こりません。

public MvxCommand ImportContactsCommand => new MvxCommand(ImportContacts); 


    private async void ImportContacts() 
    { 
     dialogService.ShowLoadingDialog(); 

     // logic 

     dialogService.HideLoadingDialog(); 
     await dialogService.ShowMessage("Done!", "Import finished."); 
    } 

Interesstingは、2番目のダイアログが呼び出されます。何がここに間違っているアイデア?

答えて

0

私はそれを見つけました。私はタスクで論理非同期を実行する必要があります:

await Task.Run(() => Import()); 
関連する問題