如何在Xamarin的后台执行函数?
当我的应用程序将打开时,我试图在后台执行一个函数,为此,我试图使用task创建一个异步函数,但我无法做到这一点 我该如何修理它 Xamarin OnStart如何在Xamarin的后台执行函数?,xamarin,Xamarin,当我的应用程序将打开时,我试图在后台执行一个函数,为此,我试图使用task创建一个异步函数,但我无法做到这一点 我该如何修理它 Xamarin OnStart protected override void OnStart(){ DefineConcursoSession(); } //execute in background private async void DefineConcursoSession(){ ConcursoDTO dto = await Co
protected override void OnStart(){
DefineConcursoSession();
}
//execute in background
private async void DefineConcursoSession(){
ConcursoDTO dto = await ConcursoService.GetConcursoAtivo();
//save session
}
public async static Task<ConcursoDTO> GetConcursoAtivo(){
String ENDPOINT = "/GetConcursoAtivo";
String URL_FINAL = URL_CONTROLLER + ENDPOINT;
ConcursoDTO dto = new ConcursoDTO();
try
{
HttpClient hClient = new HttpClient();
hClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
hClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", BasicAuth.getHash());
//get
HttpResponseMessage response = hClient.GetAsync(URL_FINAL).GetAwaiter().GetResult();
var resultContent = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
//Console.WriteLine("Content: " + resultContent);
if (response.StatusCode == HttpStatusCode.OK){
JObject jo = JObject.Parse(resultContent);
dto = JsonConvert.DeserializeObject<ConcursoDTO>(jo["Concurso"].ToString());
}
}
catch (Exception e)
{
Debug.WriteLine("Erro: GetConcursoAtivo:-> " + e.Message);
}
return dto;
}
HttpClient
protected override void OnStart(){
DefineConcursoSession();
}
//execute in background
private async void DefineConcursoSession(){
ConcursoDTO dto = await ConcursoService.GetConcursoAtivo();
//save session
}
public async static Task<ConcursoDTO> GetConcursoAtivo(){
String ENDPOINT = "/GetConcursoAtivo";
String URL_FINAL = URL_CONTROLLER + ENDPOINT;
ConcursoDTO dto = new ConcursoDTO();
try
{
HttpClient hClient = new HttpClient();
hClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
hClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", BasicAuth.getHash());
//get
HttpResponseMessage response = hClient.GetAsync(URL_FINAL).GetAwaiter().GetResult();
var resultContent = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
//Console.WriteLine("Content: " + resultContent);
if (response.StatusCode == HttpStatusCode.OK){
JObject jo = JObject.Parse(resultContent);
dto = JsonConvert.DeserializeObject<ConcursoDTO>(jo["Concurso"].ToString());
}
}
catch (Exception e)
{
Debug.WriteLine("Erro: GetConcursoAtivo:-> " + e.Message);
}
return dto;
}
public异步静态任务GetConcursoAtivo(){
字符串ENDPOINT=“/GetConcursoAtivo”;
字符串URL\u FINAL=URL\u控制器+端点;
ConcursoDTO dto=新ConcursoDTO();
尝试
{
HttpClient hClient=新的HttpClient();
hClient.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
hClient.DefaultRequestHeaders.Authorization=newauthenticationHeaderValue(“Basic”,BasicAuth.getHash());
//得到
HttpResponseMessage response=hClient.GetAsync(URL_FINAL.GetAwaiter().GetResult();
var resultContent=response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
//Console.WriteLine(“内容:+resultContent”);
如果(response.StatusCode==HttpStatusCode.OK){
JObject jo=JObject.Parse(resultContent);
dto=JsonConvert.DeserializeObject(jo[“Concurso”].ToString());
}
}
捕获(例外e)
{
Debug.WriteLine(“Erro:getconcursoative:->”+e.Message);
}
返回dto;
}
如果你认为这是Hi的翻版,iOS和Android都有自己的背景技术来实现这一点,你可以看看和。