In addition to the comment/correction by Streets of Boston... It's unclear from your description just where you're storing your non- static variables. The right way would appear to be in your ServerConnection instance, since that's the static singleton. Your activity will have a much shorter lifespan.
There's a fair bit more that's unclear to me from your description as well. It may be that you need to create and bind a service (android.app.Service). I'm not sure you're using "ServerConnection", and "server connection" in the sense of a connection to an android.app.Service, or to a service on some other system accessed via your socket connection. I'm not sure why you had trouble passing data from your activity to your service. If it was an android.app.Service, look at aidl. Without an android.app.Service, your entire application could be going away in between times, if it's not in the foreground. Be sure you understand the application and activity lifecycle. Your choice of whether to use an android.app.Service should be based on how the application lifecycle matches up with when you need this connection to exist and what you're doing with it. If you need it to persist solely to avoid authentication, consider getting a time-limited authentication token back instead, and persisting that. This would allow your activity, service, connection, and entire application to go away, and be restarted, and the user would still avoid re-authenticating. You can refresh the token with a new time-limited token on each reconnect or access, so timeout will only happen if the user is idle for an extended period. This can give a more robust user experience. Still, I think there's a good chance the problem is that you wrote: public static ServerConnection getInstance() { if(m_connection == null) return new ServerConnection(); // instead of m_connection = return m_connection; } I hope this helps, somehow. I know it's hard to do when you're lost, but if you can better describe your circumstance, you can get more useful answers. (Sometimes, doing so even leads you to your own answer!) On Feb 6, 4:08 am, Florian Lettner <fl.lett...@gmail.com> wrote: > Hey guys, > I seriously need help with a quite strange problem. I created a client > which communicates with a server. Therefore, I have three classes. An > activity providing a nice dialog to configure some data, a background > service which checks the connection status periodically and a server > class which handles the socket connection. Originally, the background > service owned a server connection object but because I could not > manage to provide data from the activity to the service, I decided to > create the server connection class as singleton. > > The user is now able to change data in the activity (IP, Port, > Username, Password) which shall be transmitted to the server object, > if the save button is pressed. The data is read correctly, the > activity calls the setter of the server class and the logcat also says > that this data is correctly applied to the variable that stores the > data in the server class. However, if I try to start the socket > connection still the old values are stored in my variables although > they've been overwritten before. What I am doing wrong, or how can I > fix this? > > My singleton looks like this. > > static ServerConnection m_connection; > > public static ServerConnection getInstance() { > if(m_connection == null) > new ServerConnection(); > > return m_connection; > > } > > All getters/setters and other variables are non-static. > > Best regards, > Florian -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en