Guest User

Untitled

a guest
Oct 22nd, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. public class MyService extends Service {
  2. private volatile Socket socket;
  3. public final static String KEY_COMMAND_TYPE = "KEY_COMMAND_TYPE";
  4. public final static String KEY_COMMAND_GET_RESUMES = "KEY_COMMAND_GET_RESUMES";
  5. public static final String KEY_JSONSTRING = "KEY_JSONSTRING";
  6. public static final String KEY_HANDLER = "KEY_HANDLER";
  7. public static final int KEY_UPDATE = 1111;
  8. public static final int KEY_CONNECTED = 2222;
  9.  
  10.  
  11. @Override
  12. public IBinder onBind(Intent intent) {
  13. return null;
  14. }
  15.  
  16. @Override
  17. public void onCreate() {
  18. super.onCreate();
  19. Log.e("MyLog", "onCreateMessangerService");
  20. new Thread(new Runnable() {
  21. @Override
  22. public void run() {
  23. try {
  24. Log.e("MyLog", "connect");
  25. int serverPort = 6666;
  26.  
  27. String address = "192.168.1.6";
  28. try {
  29. InetAddress ipAddress = InetAddress.getByName(address);
  30.  
  31. socket = new Socket(ipAddress, serverPort);
  32.  
  33. if(socket.isConnected()){
  34. Message mesToActivity = WorkerFragment.handler.obtainMessage();
  35. mesToActivity.what = KEY_CONNECTED;
  36. WorkerFragment.handler.sendMessage(mesToActivity);
  37. }
  38.  
  39. Scanner sc = new Scanner(socket.getInputStream());
  40. while (true) {
  41. String jsonString = sc.nextLine();
  42. Log.e("MyLog", "Got a message from server. Length = " + String.valueOf(jsonString.length()));
  43.  
  44. Message mesToActivity = WorkerFragment.handler.obtainMessage();
  45. mesToActivity.what = KEY_UPDATE;
  46. Bundle bundle = new Bundle();
  47. bundle.putString(KEY_JSONSTRING, jsonString);
  48. mesToActivity.setData(bundle);
  49. WorkerFragment.handler.sendMessage(mesToActivity);
  50.  
  51. Log.e("MyLog", "Сообщение в активити отправлено.");
  52. }
  53. } catch (IOException e) {e.printStackTrace();}
  54. } catch (Exception e) {e.printStackTrace();}
  55. }
  56. }).start();
  57. }
  58.  
  59. @Override
  60. public int onStartCommand(Intent intent, int flags, int startId) {
  61. if(intent != null) {
  62. Log.e("MyLog", "onStartCommand");
  63.  
  64. final String command = intent.getStringExtra(KEY_COMMAND_TYPE);
  65.  
  66. if (command != null && command.equals(KEY_COMMAND_GET_RESUMES)) {
  67. Log.e("MyLog", "if (command == KEY_COMMAND_GET_RESUMES)");
  68. new Thread(new Runnable() {
  69. @Override
  70. public void run() {
  71. if (socket == null || socket.isClosed()) {
  72. Log.e("MyLog", "Невозможно отправить данные. Сокет не создан или закрыт");
  73. return;
  74. }
  75. try {
  76. PrintWriter pw = new PrintWriter(socket.getOutputStream());
  77. pw.write(KEY_COMMAND_GET_RESUMES + "n");
  78. pw.flush();
  79. } catch (IOException e) {
  80. e.printStackTrace();
  81. }
  82. }
  83. }).start();
  84. }
  85. }
  86. return START_NOT_STICKY;
  87. }
  88. @Override
  89. public void onDestroy() {
  90. Log.e("MyLog", "onDestroy");
  91. try {
  92. if(!socket.isClosed())
  93. socket.close();
  94. } catch (IOException e) {
  95. e.printStackTrace();
  96. }
  97. super.onDestroy();
  98. }
Add Comment
Please, Sign In to add comment