android服务开始时间

时间:2012-10-22 13:41:06

标签: android service bind

我在实现应该是服务的简单示例时遇到问题。 遵循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 ......

现在我所期待的是,一旦服务第一次启动,每次我停止活动(同时解除绑定)并重新启动活动(同时绑定)我可以看到始终是相同的开始时间。

每次重新启动活动时,时间都会发生变化...

有没有人有线索?

1 个答案:

答案 0 :(得分:1)

确定Service的生命周期: - 如果是通过bindService启动,则Service在取消绑定时会停止 - 如果通过startService启动,则会通过stopService停止,或者如果Android OS需要此

首先:始终通过startService启动服务,然后绑定到它。 在您的绑定中,您可以执行:_startingTime_TV.setText(_df.format(_myService.GetFirstActivation())); 因为bindService(intent, mConnection, 0);之后你还没有受约束。您必须等待回调:onServiceConnectedServiceConnection的功能)