How to control an Android service?
I'm currently developing my first android application. I want the user of my application to be able to activate "automatic update of data" which means that some data should be refreshed every x minutes. I've created a service which is started by
service = new Intent(context, MyService.class);
context.startService(service);
and I'm using a TimerTask within the service to periodically refresh the data.
timer = new Timer();
TimerT开发者_JAVA百科ask tt = new TimerTask() {
public void run() {
refreshData();
}
};
timer.scheduleAtFixedRate(tt,0,interval);
I've noticed that the service can be restarted now and then. How can I ensure that refreshData(); is run every interval minute (not more or less)? If the user changes the interval (preference) how do a kill the current timer(task) and start a new one? Right now it seems to start a new one but not killing the old making refreshData() to execute according to two intervals.
Any help is appreciated!
(I'm new to android developing also so take everything i say with a grain of salt)
Well it looks to me like you have a lot of thinking to do about structure. There are different ways to communicate with the service. I think that the best option would be to broadcast an intent, make the service receive the intent and change the interval based on the information received from the intent.
加载中,请稍侯......
精彩评论