我请求网络获取数据然后显示到百度地图覆盖物上,
mThread = new Thread(new Runnable() {
public void run() {
mHandler.sendEmptyMessage(1);
Drawable er = getResources().getDrawable(
R.drawable.icon_a); // 得到需要标在地图上的资源
mMapView.getOverlays().add(
new OverItemT(er, BaiduMapActivity.this)); // 添加ItemizedOverlay实例到mMapView
mHandler.sendEmptyMessage(2);
}
});
mThread.start();
isRun = true;
就是如何正确的销毁这个线程呢?我目前用到的是用这个线程判断
if (isRun) {
mThread.stop();
isRun = false;
}
但是会在返回这个activity再进的时候会报错,这该怎么解决?
mThread = new Thread(new Runnable() {
public void run() {
mHandler.sendEmptyMessage(1);
Drawable er = getResources().getDrawable(
R.drawable.icon_a); // 得到需要标在地图上的资源
mMapView.getOverlays().add(
new OverItemT(er, BaiduMapActivity.this)); // 添加ItemizedOverlay实例到mMapView
mHandler.sendEmptyMessage(2);
}
});
mThread.start();
isRun = true;
就是如何正确的销毁这个线程呢?我目前用到的是用这个线程判断
if (isRun) {
mThread.stop();
isRun = false;
}
但是会在返回这个activity再进的时候会报错,这该怎么解决?
解决方案 »
- android中什么时候会选择用广播来进行线程间的通信
- Eclipse 3.5(galileo)怎么下啊?
- 【求助】安卓虚拟菜单键怎么放到屏幕下面?
- 有谁有在android能用的 POI jar包? 能够解析xlsx 和 docx的 有的麻烦分享下
- 新人求助phoneGap + jquery mobile
- android 屏幕分成上下两个布局,要求点击下方布局内的按钮可以换掉上方布局。
- Android 怎么访问数据库
- 关于XMPP IM中用户信息的获取
- Eclipse An error has occurred. See error log for more details.
- 安卓apk已经下载到手机只有登录界面,怎么把数据库弄到手机里实现登录啊
- 360浮动窗口,窗口点击外面变小,事件怎么写。
- 下载文件过程中,按返回键问题
其次不推荐使用stop方法。正确的销毁退出线程的方法是让线程run方法结束,或者抛出异常或错误。
但是如果遇到了阻塞等问题,不会进行退出flag check的时候,要用到其他方法。
http://www.cnblogs.com/slider/archive/2011/12/09/2272253.html
这个介绍的就不错。如果是一个需要大量计算读写耗时的method的话。我建议你重写他的方法。
比如一个FileOutputStream类
InterruptibleFileOutputStream
你去重写他最耗时的write类。通过一个flag,每过一段时间就进行check,如果中断,就抛出一个异常。
在线程中再补货这个异常来结束这段耗时的方法。