欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

activity 起步一个死循环线程无响应

更新时间: 2014-01-05 02:35:56 责任编辑: Author_N1

 

Activity 启动一个死循环线程无响应

package com.example.myproject;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class ShowTerminal extends Activity implements Runnable{

private Socket socket;
private String IP="127.0.0.1";
private FileInputStream in=null;
private InputStreamReader reader=null;
private String name=null;
private int CurrentCode=0;
private InputStream ins;
private OutputStream outs;
private List<EnameCode> Elist=null;
private int stateCode;
private TextView tv;
private Button btn;
private Thread thread;
private Thread recvthread;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.showterminal);
tv=(TextView)findViewById(R.id.ename);
btn=(Button)findViewById(R.id.onoff);
Intent intent=getIntent();
Bundle bundle=intent.getExtras();
name=bundle.getString("name");
tv.setText(name);
btn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
int [] comBuf=new int[2]; 
// TODO Auto-generated method stub
if(stateCode==0){
comBuf[0]=CurrentCode;
comBuf[1]=1;
}
else{
comBuf[0]=CurrentCode;
comBuf[1]=0;
}
byte [] cmd=intToByteArray(comBuf,2);
try {
outs.write(cmd);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
thread=new Thread(ShowTerminal.this);
thread.start();

}
public class EnameCode{
public String Ename=null;
public int Ecode=0;
}
public static byte[] intToByteArray(int [] value,int n) {
        byte[] b = new byte[n*4];
        for(int j=0;j <n ;j++)
        for (int i=j*4 ; i < 4*n; i++) {
            int offset = (b.length - 1 - i) * 8;
            b[i] = (byte) ((value[j] >>> offset) & 0xFF);
        }
        return b;
    }
public static int bytesToInt(byte[] data, int offset) {
   int num = 0;
   for (int i = offset; i < offset + 4; i++) {
    num <<= 8;
    num |= (data[i] & 0xff);
   }
   return num;
}
public void initCode(){
Elist=new ArrayList<EnameCode>();
int sig=1;
int m=1;
try {
in=openFileInput("smarthouse.txt");
reader=new InputStreamReader(in,"UTF16");
BufferedReader br=new BufferedReader(reader);
String s=null;
EnameCode ec=new EnameCode();
while((s=br.readLine())!=null){
m=sig % 2;
sig++;
if(m!=0){
ec.Ename=s;
}
else{
ec.Ecode=Integer.parseInt(s);
Elist.add(ec);
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException E){
E.printStackTrace();
}
for(EnameCode e:Elist){
if(e.Ename.equals(name)){
CurrentCode=e.Ecode;
}
}
}
Handler mHandler=new Handler(){
public void handleMessage(Message msg){
if(msg.arg1==-1||msg.arg1==-2){
tv.setText("error");
}
if(msg.arg1==0){
tv.setText("开");
}
if(msg.arg1==1){
tv.setText("关");
}

}
};
@Override
public void run() {
// TODO Auto-generated method stub
int nameCode;
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:35:56
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11952/
本文WWW.DOC100.NET DOC100.NET版权所有。