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());
解决方案 »
- 急 关于乱码的奇怪问题
- 又来发问了,我怎么解析从服务器传过来的字符串?内容是xml,也就是解析xml
- android开发MP3播放器遇到的一个棘手问题
- android如何实现远程控制PC端鼠标的——————跪求
- 高分求实例化一个IBinder的接口
- 我的查询出现了NullPointerException,怎么回事
- android如何动态实现这样的UI界面
- Android listview Item 监听事件
- 怎么销毁指定的Activity?
- 请问什么情况下要用到重写toString()方法,这个方法怎么用?
- 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();