首页 > 解决方案 > 运行任务而不杀死

问题描述

我正在尝试实现一个功能,用户可以简单地单击下载按钮,并且可以在下载仍在运行时进入他/她希望的任何页面,并且它不应该停止。

我正在使用 xamarin 形式。

有什么办法可以做到这一点,请提出建议或任何参考,因为我找不到相同的。

标签: xamarin.forms

解决方案


由于该类App在应用程序运行时始终存在于内存中,因此我们可以将其Task放入App.

简单任务

//App
 public async void DoSomething()
 {
    await Task.Delay(30000); 
 }

// in specific page
string result = await (App.Current as App).DoSomething();

有返回值的任务

//App
 public async Task<string> DoSomething()
 {
    await Task.Delay(30000);
    return "123";
 }

// in specific page
string result = await (App.Current as App).DoSomething();

如果您不想将代码放入App,我们可以在其中创建一个额外的类App来处理。

//App
 private MyTask _myTask;
 public MyTask myTask
 {
    get
    {
        return _myTask ?? new MyTask();         
    }
 }

//MyTask
public class MyTask
{
    public async Task<string> DoSomething()
    {
       await Task.Delay(30000);
       return "123";
    }
}

//in specific page
string result = await (App.Current as App).myTask.DoSomething();

推荐阅读