对不起,我的英语不好。我是Xamarin android的新手,尝试在用户界面中进行更改时遇到问题。例如,上次我尝试在单击按钮时更改按钮的背景。但这直到单击方法结束才发生。
private void MainActivity_Click(object sender, EventArgs e)
{
((Button)(sender)).SetBackgroundResource(Resource.Drawable.background);
//other code to run
}
我试图在RunOnUiThread和BeginInvokeOnMainThread中做到这一点,但是它也不起作用。调试时,我发现它实际上立即进行了更改,但未出现在应用程序中直到方法完成。还有一个事件,当按下按钮状态= true时,即使释放后按钮仍保持突出显示,它一直像这样一直卡住,直到方法MainActivity_Click结束。再次抱歉我的英语不好。解决方案?
似乎您的“其他要运行的代码”阻塞了线程,您可以尝试使用异步任务来处理这些耗时的操作。
尝试以下:
private void MainActivity_Click(object sender, EventArgs e)
{
((Button)(sender)).SetBackgroundResource(Resource.Drawable.background);
DoAsyncTask();
}
public async void DoAsyncTask()
{
await Task.Run(() =>
{
//other code to run
});
}
你可以看一下Asynchronous programming