마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

서비스 영역에서 쓰레드 돌릴때 앱이 종료 될때

0 추천
package com.example.humax;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class ServerService extends Service{

	private Server StartServer = null;
	
	@Override
	public void onStart(Intent intent, int startId){
		super.onStart(intent, startId);
		Toast.makeText(this, "서비스 스타트", Toast.LENGTH_SHORT).show();
		StartServer = new Server();
		StartServer.run();
	}
	
    @Override
    public void onDestroy() { 
        //Log.d("slog", "onDestroy()");
        //mPlayer.stop();
        super.onDestroy();
    }

	@Override
	public IBinder onBind(Intent arg0) {
		// TODO Auto-generated method stub
		return null;
	}
}
package com.example.humax;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import android.util.Log;
import android.widget.Toast;

public class Server implements Runnable{
    public static final int ServerPort = 5000;
    public static final String ServerIP = "192.168.0.6";
    private ServerSocket serverSocket;
    
	@Override
	public void run() {
		// TODO Auto-generated method stub
		Log.d("SERVER", "시박것");
        try {
            System.out.println("S: Connecting...");
            serverSocket = new ServerSocket(ServerPort);

            while (true) {
            	System.out.println("S: while roof...");
                Socket client = serverSocket.accept();
                System.out.println("S: Receiving...");

                try {
                    BufferedReader in = new BufferedReader(
                    new InputStreamReader(client.getInputStream()));
                    String str = in.readLine();
                    //Toast.makeText(Server.this, "메세지 : " + str, Toast.LENGTH_SHORT).show();
                    System.out.println("S: Received: '" + str + "'");
                    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),true);
                    out.println("Server Received " + str);
                } catch (Exception e) {
                    System.out.println("S: Error");
                    e.printStackTrace();
                } finally {
                    client.close();
                    System.out.println("S: Done.");
                }
            }
        } catch (Exception e) {
            System.out.println("S: Error");
            e.printStackTrace();
        }
	}
	 
	public static void main(String[] args) {
        // TODO Auto-generated method stub
    	
        Thread desktopServerThread = new Thread(new Server());
        desktopServerThread.start();
    }
}

Log Cat 부분 입니다.

09-27 01:55:02.176: I/System.out(1227): S: Connecting...
09-27 01:55:02.176: I/System.out(1227): S: while roof...
09-27 01:55:32.236: I/dalvikvm(1227): threadid=3: reacting to signal 3
09-27 01:55:32.311: I/dalvikvm(1227): Wrote stack traces to '/data/anr/traces.txt'

이쪽 부분에서 쓰레드 덤프라는게 일어나는거 같습니다. 초보 개발자라 정확하게 에러가 명시되지 않는데 해결 방법이 안보이네요ㅜ

조정하 (450 포인트) 님이 2013년 9월 27일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...