[英]Android , ProgressBar setVisibility while loading array inside OnClickListener
我试图在单击按钮后加载数组时查看Spinner风格的ProgressBar样式,问题是:当OnClickListener运行时,所有GUI都冻结并且setVisibility命令在内存加载完成之前不起作用。
我试图使用runOnUiThread或使gui无效,但没有任何作用|:
请帮忙 ?
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
spinner.setVisibility(View.VISIBLE); // <-- the spinner progressBar
loadPhoneMembers(); // <-- memory loading progress
Intent intent = new Intent();
intent.setClass(CreateFrom.this,CreateSendListFromPhoneContacts.class);
startActivity(intent);
}
});
您应该将loadPhoneMembers()方法移至新线程,因为这是一个耗时的过程,它阻塞了UI线程。 例如,您可以创建一个扩展AsyncTask
的类,并将此代码移动到doInBackground()
方法中。 这是文档: http : //developer.android.com/reference/android/os/AsyncTask.html
请注意,您无法从后台线程更改用户界面
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.