@Override
public void onCreate() {
new Thread(){
public void run(){
try {
Bundle bundle=tintent.getExtras();
if (bundle==null) {
data=1;
}else {
data=bundle.getInt("renshu"); //Activity中穿过来的int类型
}
if (data >= num2) {
num2=data;
}
System.out.println(data);
service=new DatagramSocket(PORT);
mExecutorService = Executors.newCachedThreadPool(); //创建线程池
Socket client = null;
while(num2-- >= 0){ //监听是否有客户端连接上来
mList.add(client);
Log.i("TService", "===================>llll");
byte data [] = new byte[1024];
packet =new DatagramPacket(data,data.length);
try {
service.receive(packet);
msg=new String(packet.getData(),packet.getOffset(),packet.getLength());
Log.i("TService", "=============>ooooo");
Log.i("TService", msg);
mExecutorService.execute(new Service());
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
Log.i("TService", "建立");
super.onCreate();
}
@Override
public void onStart(Intent intent, int startId) {
tintent=intent;
Log.i("TService", "启动");
handler.postDelayed(runnable, 1000);
super.onStart(intent, startId);
}
那个data是从其它Activity读取Editt后传过来的 (传过来的值是经过onstart方法下的tintent变量传递到Thread里的)但是当这个service启动后再传值 无法收到传过来的值 据说好像在那个while循环里面怎么处理下就可以收到 有没有大神指导该怎么处理啊! 求教
因为onCreate只执行一次啊,后面startService都是走的onStart。