after trying my brand new service on android i get this:
i guess is something related to the manifest file and permissions, the service is started after the last act
Create function:
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
.......
}
});
And call it from onStartCommand
thread.start();
This happens because you are doing a network operation on the main thread, and this is not allowed on Android 3.0 and above. Even though it is in a service, services are run on the UI thread unless you specifically launch them in another thread or create a thread inside it.
You can fix this by running the task in a service off the main UI thread, by using a Thread or an AsyncTask.
Try creating a new thread in onStartCommand()
, as suggested by @CommonsWare.
As per the documentation, even though you use a Service
to perform long running operations, the Service itself runs on the application's main thread. So you have to spawn a new thread to perform potentially long running tasks like network access.
Android's StrictMode actually checks for network operations performed on the main thread and throws a NetworkOnMainThreadException
.
Try this. How to fix android.os.NetworkOnMainThreadException?
Read this thread carefully.
I hope this will solve your problem.