4.0版本是好像不能在activity里直接利用socket通信,老会死机,以前的版本可以,在4.0的版本中activity的
onCreate() 里加入下面语句,可以避免死机 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork()
.penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath()
.build());
onCreate() 里加入下面语句,可以避免死机 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork()
.penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath()
.build());
解决方案 »
- 关于android session的问题
- 请问如何将spinner值存储到sqlite中,我现在每次都存值的时候都是存的第一个值
- 都进来看看吧~~~
- 一个关于dialog调用事件的问题,请教各位大侠
- 在eclipse里引用android出错,怎么办?
- 台式摄像头采集到的视屏传到手机显示不清晰
- ScrollView嵌套GridView问题
- 关于获得手机里的本地音乐
- 关于SDK的问题,已经更新到最新的SDK了为什么还是编译不过?
- android studio如何创建资源文件
- listview滑动时不加载图片,并且加载只加载当前屏幕上的图片
- android中:如何调用json参数的webservice
receiveBuffer = new byte[1024];DatagramSocket mSocketReceive = new DatagramSocket(PORT);
DatagramPacket dp = new DatagramPacket(receiveBuffer, receiveBuffer.length);
mSocketReceive.receive(dp);我在2.2和2.3上都好用,都是4.0就是接收不到数据,楼主指点指点啊
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
DatagramSocket socket = null;
try {
Log.i(_TAG, "Thread listen on 1300 start!");
socket = new DatagramSocket(1300); // bind on 127.0.0.1
byte[] buf = new byte[1514];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.setSoTimeout(100); // timeout 100ms.
while (!check_end) {
try {
socket.receive(packet);
dialog.dismiss();
check_end = true;
MCamView.last_network_check_success = true;
Log.d(_TAG, "quickly check network success!!");
} catch (InterruptedIOException iioe) {
// it's ok. just time out. let's continue
Log.e(_TAG, "Check: Error1: " + iioe);
}
}
} catch (Exception e) {
Log.e(_TAG, "Check: Error2: " + e);
} finally {
if (null != socket) {
socket.close();
socket = null;
}
Log.i(_TAG, "Thread listen on 1300 ended!");
}
}
}).start();