서비스를 호출하는 활동을 만들었으며 서비스는 서버와 데이터를 송수신하는 스레드를 만들고 다른 응용 프로그램과 서비스를 열고 스레드는 정상적으로 실행되지만 작업을 닫으면 서비스는 계속 실행되지만 스레드는 작동을 멈 춥니 다. 왜??? 스레드를 계속 실행하려면 어떻게해야합니까 !!활동을 닫을 때 내 서비스에서 생성 된 스레드가 종료 됨
코드
활동
package com.connectus.app;
public class ConnectUsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_connect_us);
Intent startServiceIntent = new Intent(getApplicationContext(), ConnectUsService.class);
startService(startServiceIntent);
}
서비스
package com.connectus.app;
public class ConnectUsService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
Thread t=new Thread(new Runnable() {
private DataInputStream in;
private BufferedReader br;
private DataOutputStream out;
@Override
public void run() {
Socket server=null;
try{
server=new Socket("10.10.40.58",4444);
in = new DataInputStream(server.getInputStream());
br=new BufferedReader(new InputStreamReader(in));
out = new DataOutputStream(server.getOutputStream());
while(true){
out.writeUTF("aaaaa");
String leido=in.readUTF();
out.writeUTF("asdf");
Thread.sleep(60000);
}
}catch(IOException ioe){
ioe.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
}
});
t.start();
return START_STICKY;
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
}
이 내 코드의 단지 부분은, 나는 그것이 도움이되기를 바랍니다.
버그가 있어야합니다. 관련 코드를 게시하십시오. – Merlevede
하지만 Logcat에서 오류가 표시되지 않습니다. 코드를 입력 해 보겠습니다. –
우리에게 코드를 보여주십시오 – cheloncio