了解服务的上次活动时间

时间:2015-01-17 19:26:54

标签: android service

我正在尝试在Android设备上找到正在运行的服务的最后活动时间。我尝试过以下操作。

ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) 
{
if (service.service.getClassName().contains("com.truecaller"))//for example
{
    System.out.println(service.service.getClassName());

    System.out.println(service.lastActivityTime);

    System.out.println(service.activeSince);
}
}

我在logcat.i上为system.out添加了一个标签,执行程序两次,执行之间有一分钟的差距。但两者的输出完全相同。这是可能的。我们如何找到实际的服务的最后活动时间?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

  

但两者的输出完全相同。这是可能的。

引用the documentation for lastActivityTime

  

服务中有最后一个活动的时间(显式请求启动它或客户端绑定到它)。

据推测,在那一分钟内,没有人为这项服务打电话startService()bindService()

引用the documentation for activeSince

  

服务首次处于活动状态的时间,由启动或绑定服务的人员启动。

因此,只有在服务停止然后启动(通过stopService()stopSelf())或流程终止时才会更改。

因此,在袖口之外,您的结果似乎与记录的行为相符。

  

我们如何找到服务的实际上次活动时间?

我不知道“最后活动时间”对于服务意味着什么。