gpt4 book ai didi

android - 为什么 getHandler() 返回 null?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:50:31 25 4
gpt4 key购买 nike

我遇到了以下问题。我在像这样的单独线程中的 mapview 上绘制路线:

 public void drawRoute(final MapView mapView) { 
new Thread(new Runnable() {
public void run() {
try {
//Do something useful
} catch (SomeException se) {
Handler handler = mapView.getHandler();
handler.post(/*show error in UI thread*/)
}}
}).start();
}

但是当我得到处理程序时它返回 null,尽管在 Debug模式下处理程序返回并显示错误消息。可能是什么问题?

PS 可能是获取Handler的方式不对,但是我找不到相关信息。

最佳答案

getHandler 方法返回 null 因为 View 没有附加:

public Handler getHandler() {
if (mAttachInfo != null) {
return mAttachInfo.mHandler;
}
return null;
}

mAttachInfodispatchAttachedToWindow 中设置,在 dispatchDetachedFromWindow 中设置为空。

您可以直接使用 mapView.post() 而不是 mapView.getHandler().post()(这似乎使用 getHandler().post()ViewRootImpl.getRunQueue().post()).

关于android - 为什么 getHandler() 返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13254819/

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