[Android]Can't create handler inside thread that has not called Looper.prepare()
2015-06-26 11:11
483 查看
更新是由于在新的线程来打开UI只有一个错误。子线程更新主线程UI需要使用Handler.
还有比如今天出现以下错误。码,如以下:
把上面这行代码也通过处理放进handler之后。错误就没有了。
Handler是这么定义的:
主要接受子线程发送的数据, 并用此数据配合主线程更新UI.
Handler的主要作用:主要用于异步消息的处理
Handler的执行过程:
当(子线程)发消息后,。首先,进入一个(主线程)消息队列,函数来发送消息立即返回,在主线程Handler一个在新闻删除消息队列中的一个,然后处理该消息。这样就实现了跨线程UI更新(其实在主线程中仍然完成)。
这种机构通常被用来处理通过相对耗时较长的操作,如访问网络是耗时的操作,读大的文本文件,比较费时的操作处理。
还有比如今天出现以下错误。码,如以下:
send.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new Thread(new Runnable() { @Override public void run() { Toast.makeText(getApplicationContext(), "主线程中UI", Toast.LENGTH_SHORT).show(); } }); } });
Toast.makeText(getApplicationContext(), "主线程UI", Toast.LENGTH_SHORT).show();都是这句话惹的祸。
把上面这行代码也通过处理放进handler之后。错误就没有了。
Handler是这么定义的:
主要接受子线程发送的数据, 并用此数据配合主线程更新UI.
Handler的主要作用:主要用于异步消息的处理
Handler的执行过程:
当(子线程)发消息后,。首先,进入一个(主线程)消息队列,函数来发送消息立即返回,在主线程Handler一个在新闻删除消息队列中的一个,然后处理该消息。这样就实现了跨线程UI更新(其实在主线程中仍然完成)。
这种机构通常被用来处理通过相对耗时较长的操作,如访问网络是耗时的操作,读大的文本文件,比较费时的操作处理。
相关文章推荐
- Android SQLite
- Android onTouchEvent, onClick及onLongClick的调用机制
- Android模拟产生事件
- Android开发框架androidannotations的使用
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- android studio导入第三方类库的方法
- 【VLC-Android】vlc-android简例
- 【VLC-Android】Mac下编译vlc-android
- 关于Android4.0的Alertdialog对话框
- Android操作存放在assets文件夹下SQLite数据库的方法
- android Spinner的使用
- android:分享 一个很强大的LOG开关---Log.isLoggable
- android 根据uri得到带文件后缀名的uri、避免OOM获取预览图片
- android 休眠唤醒机制分析(二) — early_suspend
- android Log.isLoggable步骤的使用
- Android WebView的Js对象注入漏洞解决方案
- Android 动态加载(防止逆向编译)技术
- 平安科技移动开发二队技术周报(第八期)
- Android----获得当前应用包名、当前activity的名字、判断是否是系统桌面、service类
- android判断应用是否有某个权限