繁体   English   中英

Activityindicator停止以Xamarin.forms形式旋转

[英]Activityindicator stops spinning in Xamarin.forms

我想在xamarin.forms中使用activityindicator,Activityindicator在屏幕中间成功显示,但是旋转动画停止(卡住),浏览了一些文章,但没有帮助。我没有在其他设备上进行测试,但它在Android系统中不起作用。

private async Task<string> getUrlString(string id)
    {
        string url = doSomeWork(id);\\its a long running process where it \\takes around 10 minutes to run,And I cant do it in background for some reasons
        return url;
    }
    async void Handle_ItemSelected(object sender, Xamarin.Forms.SelectedItemChangedEventArgs e)
    {
        await DisplayAlert("", "something", "OK");
        activityindicator.IsRunning = true;
        await Task.Delay(250);      int id=1;   
        var url =await getUrlString(id);
        await Navigation.PushModalAsync(new playerPage());
        activityindicator.IsRunning = false;
    }

您尝试实现一些并非为此而建的东西。 当您用长时间运行的任务阻塞主线程时,您无法告诉主线程他应该旋转活动指示器……他为什么要这样做? 他忙于长期运行的任务。

您有两种选择:

1)不要在主线程上执行长时间运行的任务(这是推荐的方式)

2)不要显示动画(例如您的活动指示器),只需向用户显示一条静态消息“这可能需要一段时间...耐心等待”。

但我强烈不建议您选择2。为什么? 当您长时间阻止主线程时,Android系统会检测到您的应用未响应,并且可能向用户显示一条消息,例如“应用未响应。您要等待还是取消?”。 尤其是当主线程被阻塞并且用户在其上点击几次时...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM