gpt4 book ai didi

android - 线程处理程序停止处理方向更改

转载 作者:行者123 更新时间:2023-11-30 04:44:10 25 4
gpt4 key购买 nike

我的应用后台有一个解析 XML 的线程。这样做时,它会通过处理程序更新 Activity View 中的进度条。这在手机改变方向之前一直有效(并且可能在其他破坏性操作期间,如多任务处理,尽管我还没有在那里进行全面测试)。旋转任意次数后,进度条会卡住在原处并且​​永远不会前进,即使在解析完成并且我的 ListView 自行更新时也是如此。

这是相关代码的精简版。我没有在此处包含它,但我确实有适当的代码来确保线程在轮换后不受阻碍地继续运行——就像我说的那样,解析最终会在相同的时间内完成并更新 ListView。只是进度条处理程序不起作用:

private ProgressBar mProgress;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.directory_list);
mProgress = (ProgressBar) findViewById(R.id.progressBar);
mProgress.setMax(entryCount);
startXMLParseThread();
}

private void startXMLParseThread() {
new Thread () {
Handler hUpdateProgressBar = new Handler(){
public void handleMessage(Message msg) {
mProgress.setProgress(entryCount);
}
};

public void run() {
while (parserEvent != XmlPullParser.END_DOCUMENT) {
entryCount++;
hUpdateProgressBar.sendEmptyMessage(0);
parserEvent = parser.next();
}

mHandler.post(new Runnable() {
public void run() {
adapter.getCursor().requery();
}
});
}
}.start();
}

最佳答案

可能是它在方向改变时再次运行 onCreate 方法...所以它失去了对先前处理程序的引用...尝试这个..将属性添加到该特定 Activity 的 list 文件中 android:configChanges="orientation".. .这样它就不会再次运行 onCreate ...试一试...

关于android - 线程处理程序停止处理方向更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5382944/

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