我正在做一个Xamarin.iOS应用程序。
我希望在我的应用加载(预加载数据)之前从我的API获取客户/购物数据,而不是在用户使用应用时调用它。我想我需要在AppDelegate中挂起东西,这样我就可以把它放在启动画面上,直到我的API调用完成。假设用户在应用启动时登录。
我从应用程序的其他部分异步调用的异步方法是:
class MySQLDatabase {
function __construct(){
if(file_exists(ROOT_PATH.'config.php')){
$db_config = json_decode(file_get_contents(ROOT_PATH.'config.php'), true);
$this->open_connection(db_config);
}}
function open_connection() {
$this->connection = mysqli_connect(
$this->db_config['DBLocation'],
$this->db_config['DBName'],
$this->db_config['DBPassword'],
$this->db_config['DBUsername']
);
if(mysqli_connect_errno()) {
echo "Connection failed: " . mysqli_connect_error();
}
}
但是我在ViewDidLoad或其他领域调用它。我现在想要在应用程序启动之前获取所有这些信息。所以我不小心弄清楚我要么永久地挂起整个应用程序(使用.result,还没弄清楚如何让它在完成后停止)或让它以异步方式运行,但没有运气实现同步暂时运行的所需行为,直到逻辑完成。
你建议我在AppDelegate中使用什么方法?
也许
public async Task<CustomerShoppingSummary> GetCustomerShoppingSummary()
是否同步运行此建议并阻止UI线程直到完成?
谢谢!
答案 0 :(得分:1)
我最后在主页上使用了一个微调器,因为它毕竟看起来更好。
非常感谢大家:)