I'm trying to launch `service` and then open `socket` to have connection with server.

On button click I create new `Thread` and then start service.

```
Thread t = new Thread(){
        public void run(){
            mIntent= new Intent(MainActivity.this, ConnectonService.class);
            mIntent.putExtra("KEY1", "Value used by the service");
            context.startService(mIntent);
        }
    };
t.start();

```

Then on `service`, I try to open `socket` and have connection with server

```
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    //TODO do something useful

    try {
        InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
        socket = new Socket(serverAddr, SERVERPORT);
        Scanner scanner = new Scanner(socket.getInputStream());
        message = scanner.nextLine();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return Service.START_NOT_STICKY;
}

```

But when I call it, I have **error**

```
08-30 08:56:49.268: E/AndroidRuntime(3751): java.lang.RuntimeException: Unable to start service com.example.testofconnection.ConnectonService@40ef02a8 with Intent { cmp=com.example.testofconnection/.ConnectonService (has extras) }: android.os.NetworkOnMainThreadException*

```

I think problem is that `service` is on `main thread`, but I can't find how should I start service on new (independend) thread to keep `connection alive`?