2017-02-25 2 views
-1

Ich habe ein Problem mit WaitingForActivation Status des Serviceaufrufs;Xamarin WaitingForActivation

Mein Code

Public async Task CallService(string path) 
    { 
     IRestClient client = new RestClient(config.Ip); 
     IRestRequest request = new RestRequest(config.MainResources + path, Method.GET); 

     try 
     { 
      await Task.Run(() => 
      { 

       var response = client.Execute<List<string>>(request); 

      }); 

     } 
     catch (Exception e) 
     { 

      throw; 
     } 
    } 

Aber Respons ist immer noch Status WaitingForActivation.

Wissen Sie, wo das Problem sein könnte? Oder hast du eine bessere Idee async Methode zu machen, die mir Antwort vom Restdienst zurückgibt?

Vielen Dank für Hilfe. :)

Antwort

0

Es könnte ein Problem Umfang sein. wenn Sie in C# Codes ausführen wie folgt:

public class MainActivity : Activity 
{ 
    Button btnClick; 
    int response; 
    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 

     // Set our view from the "main" layout resource 
     SetContentView (Resource.Layout.Main); 
     btnClick = FindViewById<Button>(Resource.Id.btnClick); 
     btnClick.Click += BtnClick_Click; 
    } 

    private async void BtnClick_Click(object sender, System.EventArgs e) 
    { 

     await Task.Run(() => 
     { 
      int response = 123456;// should be response=123456; 
     }); 

     var abc = response;//response is 0 
    } 
} 

die Codes innerhalb Task.Run erhalten korrekt ausgeführt. Aber die Antwort ist immer noch 0; Sie müssen die int im Task.Run Block entfernen.

Wenn dies nicht der Fall ist, ist es höchstwahrscheinlich das Problem des Serviceanrufs (die Anfrage könnte falsch sein oder der Service könnte die falsche Antwort zurückgeben usw.), was aus Ihren gebuchten Codes nicht ersichtlich ist , brauche dafür eine grundlegende Demo.