Android的BluetoothSocket调用Close时程序崩溃

问题描述

RT.

/* 停止客户端连接 */

	private void shutdownClient() {

		new Thread() {

			public void run() {

				if (clientConnectThread != null) {

					clientConnectThread.interrupt();

					Log.i("1111111111111111111111111111111",

							"5555555555555555555555555555555555");

					clientConnectThread = null;

				}

				if (mreadThread != null) {

					mreadThread.interrupt();

					Log.i("1111111111111111111111111111111",

							"44444444444444444444444444444");

					mreadThread = null;

				}

				if (socket != null) {

					try {

        socket.close();						Log.i("1111111111111111111111111111111",

								"3333333333333333333333333");

					} catch (IOException e) {

						// TODO Auto-generated catch block

						e.printStackTrace();

					}

					socket = null;

				}

			};

		}.start();

	}

走到Close方法时,程序崩溃退出了。什么错都没报!

解决方案1

你这个应该是搞了一个monitor thread在监听其余的线程吧,建议加锁进行操作。不要直接这样close,或者判断数据。

时间: 2024-08-25 16:56:35

Android的BluetoothSocket调用Close时程序崩溃的相关文章

Qt中遇到QLineEdit设置文本setText时程序崩溃

参考例子:https://blog.csdn.net/u014252478/article/details/80377103学习QT Socket编程.运行TcpServer时程序崩溃了,讨厌的Segmentation fault又出现了! 调用栈显示QLineEdit调用setText的位置,很可能是QLineText指针有问题了! 将QNetworkInterface().allAddresses().at(1).toString()级联调用拆开调试,获取ip字符串没有问题,判断ui->IP

没有网络连接时程序崩溃问题以及动态加载图片问题已解决

经过进一步的研究我们把没有网络连接时程序崩溃的大bug修改掉了,如果是程序打开时没有网络连接会弹出网络连接失败的 对话框,如果在程序运行过程中出现网络异常,在需要连接服务器的时候会抛出网络连接异常: 第二个是动态加载图片问题的解决,我们通过查资料找到方法把bitmap加载进gradeview,用一个线程每次加载一个图片然后 把对应课程位置的图标替换掉,最后实现了动态刷新网络图片. 这两个问题修改过之后,我们的程序中基本的功能已经完善了,最后我们会对UI进行小的修改,让程序更加完美. 下面是新的安

Android中继承的Dialog导致程序崩溃

============问题描述============ 在一个自己定义的View中,当点击屏幕时弹出一个对话框,结果每次程序都会被强制关闭. View中的onTouchEvent()方法: public boolean onTouchEvent(MotionEvent event) { //Log.i("sudu002", "done!!!!!!!!!!!!!!!!!"); if(event.getAction() != event.ACTION_DOWN) re

win10系统使用clover时程序崩溃的解决

1. 工具 --->  Internet选项 2. 程序选项卡 ---> 管理加载项 3.选择ExporerWatcher Class ---> 启用 win10对于未验证的程序状态是新安装,需要手动启用

Android 登录界面调用输入法时让界面自动上移,使输入法不会遮挡到主界面(Activity)

先贴上效果图:   1 <?xml version="1.0" encoding="utf-8"?> 2 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="fill_parent" 4 android:layout_height="match_parent&qu

AFNetworking请求中含有中文时程序崩溃

出现error: Assertion failure in -[AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:] 需要处理urlString的编码 urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

对“XXX::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们

托管调试助手“CallbackOnCollectedDelegate”在“D:\XXX\XXX.vshost.exe”中检测到问题. 其他信息: 对“XXX+HookProc::Invoke”类型的已垃圾回收委托进行了回调.这可能会导致应用程序崩溃.损坏和数据丢失.向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们. 经过搜索资料,发现出问题的原因是我的程序里回调函数作用域的问题 (_mouseHookCallBack) 报错前代码: private voi

对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。 错误解决一例。

最近在写一个海康的门禁的自动监控刷卡事件的程序. 因为用c#写的,大家都知道c#是垃圾自动回收的.海康提供的api是用c++写的,要将处理的回调代码委托给api .刚开始的时候很顺利,但当运行一段时间就会报以下错误: 对“xxx”类型的已垃圾回收委托进行了回调.这可能会导致应用程序崩溃.损坏和数据丢失.向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们. 大致的原因是:c#把回调函数资源回收了,导致api收到事件的时候执行回调出错. 网上的解决方案是将回调方

android 连接蓝牙扫码枪,程序崩溃之onConfigurationChanged

当android手机通过蓝牙连接扫码枪时,程序崩溃的原因之一是:键盘弹出或隐藏,触发程序走了onDestory->onCreate的生命周期,从而可能使得页面的某些初始化数据被清除了. 解决方法:通常在AndroidManifest.xml中指定Activity添加以下代码 1 android:configChanges="orientation|keyboard|keyboardHidden" 这句代码表示,当设备旋转.显示键盘.隐藏键盘时调用Activity的onConfig