由于以前做了1年java(其实在以前公司大多数都是vb,C#什么的,很少接触java,也许这也是我毅然转android的原因吧),现在准备做android应用开发,打算过段
时间做游戏或底层开发吧,应该做游戏开发的可能性大点^_^,言归正传,看例子:

@Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  thread.start(); } Thread thread = new Thread() {  public void run() {   try {    Thread.sleep(1000);  //模拟耗时操作   } catch (InterruptedException e) {    e.printStackTrace();   }   ((TextView) findViewById(R.id.test)).setText("test");  } };


会发现报错,异常:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

相信懂点英语的人就知道什么意思,根据它的意思以前一直都是这样改的:

@Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  //thread.start(); }  Handler handler = new Handler() {  public void handleMessage(android.os.Message msg) {   //在这里改变UI值  }; Thread thread = new Thread() {  public void run() {   try {    Thread.sleep(1000);  //模拟耗时操作   } catch (InterruptedException e) {    e.printStackTrace();   }   //((TextView) findViewById(R.id.test)).setText("test");   handler.sendEmptyMessage(what);  } };


今天又看到一种写法,不过意思一样:

@Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  new Handler() {   public void handleMessage(android.os.Message msg) {    thread.start();   };  }.post(thread); } Thread thread = new Thread() {  public void run() {   try {    Thread.sleep(1000);   } catch (InterruptedException e) {    e.printStackTrace();   }   ((TextView) findViewById(R.id.test)).setText("test");  } };



以上两种方法差不多,随你选择

更新于2013-06-03 01:09:34

我的博客其它文章列表
http://my.oschina.net/helu

更多相关文章

  1. android 操作命令
  2. Android之Sqlite的增删查操作
  3. 点击事件XML里的写法
  4. Android之Gson操作
  5. Android在API推荐的方式来实现SQLite数据库的增长、删除、变化、
  6. android 分享到QQ空间的所有操作
  7. Android接收信息操作
  8. Android SDCard 操作

随机推荐

  1. Android无法真正睡眠:服务广播插件等仍激
  2. Android(安卓)安全 —— 本地拒绝服务漏
  3. Android动画之ViewAnimation和DrawableAn
  4. 初学Android,使用菜单资源(十九)
  5. Android获取安装包32位签名
  6. How to create android splash screen
  7. Android知识梳理:消息机制之Looper
  8. Android(安卓)Phone拨出电话流程
  9. Android(安卓)Telephony —— 手机信号实
  10. Android(安卓)界面布局