关于Only the original thread that created a view hierarchy can touch its views的解决方案

        我表示很头疼,碰到这个问题,丝毫不晓得哪里出了问题。但问题必须得解决,硬着头皮一点一点试,总觉得跟线程有关系,不停的换关键词baidu,google各种搜索,最终,发现问题的所在。

        我所做的游戏游戏画面用的是GL绘制,而今天我要添加的mobclix确是一个view控件,而view和控件不是线程安全的,而控制控件的view是主线程(个人理解,获取不大准确,从问题翻译上分析得到),要想控制主线程改变view,必须得以主线程的身份。而如何让主线程知道我要改变它呢,就要用到Handler类了。。

	private static Handler mHandler = new Handler(){ 
		@Override
		public void handleMessage(Message msg)
		{
			if(msg.what == 0 || msg.what == 1)
			{
				HandlerSetAdVisibility(msg.what);
			}
			else if(msg.what == 48 || msg.what == 80)
			{
				HandlerSetAdLocation(msg.what);
			}
		}
	};

当需要让主线程view作出改变时,只需调用

mHandler.sendEmptyMessageDelayed(args, 0);

posted on 2010-11-27 08:23  示韦BadSmile  阅读(59490)  评论(1编辑  收藏  举报

导航