android thread
2016-07-02 17:00
363 查看
本周在开发安卓采样过程中,学习了一下java的线程知识,java线程用到如下几个类和接口,
Thread,Runnable,如果要开线程,只要实现Runnable接口run()就可以了,最后Thread.start(),
但是在线程过程中,逻辑层和显示层的交互不能直接在线程中进行,需要类似发消息到外面执行,
用到如下两个类Handler,Message,Handler.sendMessage(),
附上主要代码:
// 处理采样线程的类
static Handler handleSampleThreadHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
}
};
Thread,Runnable,如果要开线程,只要实现Runnable接口run()就可以了,最后Thread.start(),
但是在线程过程中,逻辑层和显示层的交互不能直接在线程中进行,需要类似发消息到外面执行,
用到如下两个类Handler,Message,Handler.sendMessage(),
附上主要代码:
// 处理采样线程的类
static Handler handleSampleThreadHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
}
};
// 开线程 Thread threadSample = new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub myApp.samplingBoolean = true; // 每秒点数 int nSecondPointCountInteger = myApp.nSecondPointCountInteger; // 每屏点数 int nScreenShowPointInteger = myApp.nScreenShowPointInteger; // 每次取点个数 int nPetGetPointCountInteger = nSecondPointCountInteger / 10; // 信号频率 double dbSignalFrequencyDouble = 0.5; // 采样频率 double dbSampleFrequencyDouble = myApp.dbSampleFrequencyDouble; while (myApp.samplingBoolean) { Message messageSampleMessage = new Message(); messageSampleMessage.what = 1; handleSampleThreadHandler.sendMessage(messageSampleMessage); Integer nYuInteger = myApp.numberInteger % nScreenShowPointInteger; for (int i = 0; i < nPetGetPointCountInteger; i++) { double xValueDouble = myApp.numberInteger / dbSampleFrequencyDouble; myApp.ch1ValueArrayDoubles[nYuInteger + i] = 800 * Math.sin( 2 * Math.PI * dbSignalFrequencyDouble * xValueDouble); myApp.numberInteger++; } // 休眠100ms try { Thread.sleep(100); } catch (Exception e) { // TODO: handle exception } } } }); threadSample.start();
相关文章推荐
- Launcher3桌面Icon的文字size的 修改
- 自定义文件管理器
- Android开发时,写MainActivity.java时出现TextView cannot be resolved to a type
- android 波形图
- Android中使用FragmentManager获得控件
- Android canvas.drawArc() 画圆弧
- Android图像开源视图:SmartImageView
- android surfaceView+mediaPlayer 自定义视频播放器
- 如何使用android studio进行多渠道的打包?
- android studio基本界面设置
- android 底部弹出提示框的实现方式
- Android变色状态栏实现
- Android自定义圆角矩形图片ImageView
- android连接wifi
- android下基于开源浏览器项目crosswalk的js与java交互
- Android: Resource Type Animation
- Android 源码下载方法(Git 方式clone)
- Android之内存机制分析-Android堆和栈
- Android studio NDK问题
- 自定义AvatarImageView满足你所有头像显示需求