gpt4 book ai didi

java - 在 PreferenceActivity 中显示 ProgressDialog

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:28 24 4
gpt4 key购买 nike

当我尝试在 onPreferenceChange 监听器中显示 ProgressDialog(简单的微调器类型)时,我遇到了一个非常有趣的问题。

public class SettingsActivity extends PreferenceActivity {
private ProgressDialog dialog;

public void onCreate(Bundle savedInstanceState) {
ListPreference pref= (ListPreference) findPreference("myPreference");
pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
dialog = ProgressDialog.show(SettingsActivity.this, "", "Doing stuff...", true);
SystemClock.sleep(2000);
}
return true;
}
}

ProgressDialog 出现,但直到方法(在本例中为 sleep)完成。我做错了什么?

最佳答案

您在主 UI 线程上 hibernate ,这会阻止操作系统处理应用程序的事件。这将阻止您的应用重绘,并且正如您发现的那样,可以阻止新窗口实际出现。

不要 sleep ,试试这个:

final ProgressDialog dialog = ProgressDialog.show(
SettingsActivity.this, "", "Doing stuff...", true);
new Handler().postDelayed(new Runnable() {
public void run() {
dialog.hide();
}
}, 2000);

关于java - 在 PreferenceActivity 中显示 ProgressDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3380322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com