我在实现应该是服务的简单示例时遇到问题。 遵循Android开发者计划,我设法绑定到服务。服务很完美。
我想要实现的是服务的开始日期。我有
public class MyService extends Service {
private Date _firstActivation= new Date();
....
....
public Date GetFirstActivation() {
return _firstActivation;
}
}
在绑定到服务的主要活动中,我在OnStart方法中有一个基本实现
// Check if the Service is running and if it's running let's bind to the service through ServiceConnectionClass
if (((MyApplication)getApplication())._serviceIsRunning)
{
Intent intent = new Intent(this, MyService.class);
bindService(intent, mConnection, 0);
_startingTime_TV.setText(_df.format(_myService.GetFirstActivation()));
}
else {
_startingTime_TV.setText("Service Not Started");
}
其中_myService是MyService,mConnection是ServiceConnection ......
现在我所期待的是,一旦服务第一次启动,每次我停止活动(同时解除绑定)并重新启动活动(同时绑定)我可以看到始终是相同的开始时间。
每次重新启动活动时,时间都会发生变化...
有没有人有线索?
答案 0 :(得分:1)
确定Service
的生命周期:
- 如果是通过bindService
启动,则Service
在取消绑定时会停止
- 如果通过startService
启动,则会通过stopService
停止,或者如果Android OS需要此
首先:始终通过startService
启动服务,然后绑定到它。
在您的绑定中,您可以执行:_startingTime_TV.setText(_df.format(_myService.GetFirstActivation()));
因为bindService(intent, mConnection, 0);
之后你还没有受约束。您必须等待回调:onServiceConnected
(ServiceConnection
的功能)