SocketServer.accept()崩溃的应用程序,或者有时无法正常工作的Android

问题描述 投票:0回答:1

[每当我调用SocketServer时,它都会强制关闭应用程序。如果我在后台服务中运行它,那么它将跳过该代码。

public void run() {
            try {
                //Log.e("Debugging Data: ", "-------------->>>>>     Here  "+LocalServerThread.getState());
                if (LocalServerThread.getState() == Thread.State.RUNNABLE) {
                    try {
                        if(socClient!=null) {
                            ServerAsyncTask serverAsyncTask = new ServerAsyncTask();
                            serverAsyncTask.execute(new Socket[]{socClient});
                        }
                    }
                    catch(Exception ex)
                    {
                        Log.e("Debugging Data: ", "-------------->>>>>     Server ERROR  "+ex.getMessage());
                    }
                }
            }
            catch(Exception ex)
            {
                Log.e("Debugging Data: ", "Not Running");
                Log.e("Debugging Data: ", "New Thread Created");

                LocalServerThread = new Thread() {
                    @Override
                    public void run() {
                        try {
                            //ServerSocket socServer = new ServerSocket(8088);
                            while (true)
                            {
                                socServer=null;
                                socServer = new ServerSocket(5000);
                                Log.e("Debugging Data: ", "-------------->>>>>     1  ");
                                socClient = socServer.accept();
                                Log.e("Debugging Data: ", "-------------->>>>>     2  ");
                                //Log.e("Debugging Data: ", "New Thread Running");
                                if(socClient==null) {
                                    Log.e("Debugging Data: ", "SOC Client nULL");
                                    socClient = socServer.accept();
                                    Log.e("Debugging Data: ", "New SOC Client Created");
                                }
                                ServerAsyncTask serverAsyncTask = new ServerAsyncTask();
                                serverAsyncTask.execute(new Socket[]{socClient});
                            }
                        } catch (IOException e) {
                            Log.e("Debugging Data: ", "New Thread Error  "+e.getMessage());
                            e.printStackTrace();
                        }
                    }
                };

                LocalServerThread.start();
                Log.e("Debugging Data: ", "-------------->>>>>     Here2  "+LocalServerThread.getState());
            }
}
android android-service android-service-binding android-background
1个回答
0
投票

[Makaka ugagaaggagagagagag-gag = gaggagagagaggaggagaga

© www.soinside.com 2019 - 2024. All rights reserved.