我的应用程序采取用户输入时的listview
被加载,backpress和按钮,当这种情况发生不工作受阻。
public void OnAnimationEnd(Animation animation)
{
Task.Run(() => RunOnUiThread(dodo));
}
下面的代码运行的动画结束时
public void dodo()
{
AdRequest adRequest = new AdRequest.Builder().AddTestDevice(AdRequest.DeviceIdEmulator).Build();
adView.LoadAd(adRequest);
AccessFiles();
adapter = new MyArryAdapter(this, Resource.Layout.AdaptView, CustomView.multipleData.ToList());
listView.Adapter = adapter;
adapter.NotifyDataSetChanged();
pb.Visibility = ViewStates.Gone;
}
试试这个(我的道歉,我没有时间在此刻来测试它,因为我希望通过问题,而我等待构建完成):
public async void OnAnimationEnd(Animation animation)
{
await Task.Run(() => Dodo()).ConfigureAwait(false);
RunOnUIThread(AssignDodoAdapter());
}
void Dodo()
{
AdRequest adRequest = new
AdRequest.Builder().AddTestDevice(AdRequest.DeviceIdEmulator).Build();
adView.LoadAd(adRequest);
AccessFiles();
adapter = new MyArryAdapter(this, Resource.Layout.AdaptView, CustomView.multipleData.ToList());
}
void AssignDodoAdapter()
{
listView.Adapter = adapter;
adapter.NotifyDataSetChanged();
pb.Visibility = ViewStates.Gone;
}
注:我假设,适配器,列表视图等被暴露时可参考的,因为你的代码示例中的字段。
OnAnimationEnd()应标明异步。它应该运行在后台(非UI)线程允许其他事件在UI线程中处理在突突()的代码,但因为是期待已久的,它不会继续到下一个代码块。一旦任务完成后,应该再运行在UI线程中AssignDodoAdapter()的代码。