thestronger8 thestronger8
关注数: 30 粉丝数: 231 发帖数: 5,332 关注贴吧数: 87
怎么在service里面启动socket服务 我在一个activity里面启动一个服务,在设服务里面加载一个socket服务器。 这是我用来启动服务的Activity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent serviceIntent = new Intent(); serviceIntent.setClass(this, LocalService.class); this.startService(serviceIntent); this.finish(); } 下面是在LocalService中的代码: @Override public void onCreate() { // TODO 自动生成的方法存根 super.onCreate(); acceptThread=new AcceptThread(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { // TODO 自动生成的方法存根 Log.i(TAG, "onStart"); android.os.Debug.waitForDebugger(); acceptThread.start(); return super.onStartCommand(intent, flags, startId); } private class AcceptThread extends Thread { @Override public void run() { try { Log.i(TAG, "正在启动服务..."); socketServer = new ServerSocket(5656); Log.i(TAG, "服务器已启动,等待客户端连接"); while (true) { // accept() 方法是阻塞式的,当有客户端连接成功后才继续执行 client = socketServer.accept(); Log.i(TAG, "客户端连接成功"); mReceiveThread = new ReceiveThread(client); // 开启接收线程 mReceiveThread.start(); senddata("已经成功连接到服务器..."); new dkjc().start(); // iSocketOk.onSocketOk(); } } catch (IOException e) { Log.i(TAG, "启动失败"+e.getMessage()); e.printStackTrace(); } } } 我有获取权限 <uses-permission android:name="android.permission.INTERNET"/> 以上代码在我用eclipse连接手机或者机顶盒,点击运行,安装成功后运行没有任何问题,能成功建立socket服务。并且我也用客户端试过了,成功连接上。但是如果我把机顶盒或者手机重启后,在没有连接电脑调试的情况下,却建立不了socket服务,卡在socketServer = new ServerSocket(5656);这里。我折腾了好久了,现在把代码贴上来求助,谢谢大家了!
首页 1 2 下一页