怎么用Service检测正在运行的程序

如何用Service检测正在运行的程序
是这样的,我在写一个能够监听某个应用的使用情况, 如果超过10天没有使用,就会广播通知提醒用户。我现在是开机就自动一个service来监测某个应用有没有运行,现在开机自动启动service的功能和检测应用是否运行的功能都实现了,但是,service 不能实时监测。比如 我把判断所检测的代码放在service的 onStartCommand(Intent intent,int StartId){

  if(running("com.cn.book")==true){

  ...........
}



}中, 启动service之后,我再去打开"com.cn.book"应用,以上的方法却没有响应,请问各位高手如何实现?


------解决方案--------------------
根据你的代码,你只是在onStartCommand的时候去判断应用是否有打开,你如果要一直判断的话,至少要用一个循环
while(true)
{
if(running("com.cn.book")==true)
{
....
}
}

但只是一直循环的话可能会崩溃,可以在循环中加上sleep(1000)每隔1秒判断一次。
------解决方案--------------------
1.如果这个应用是你自己写的话,最好是发intent,或者把数据写prefence,
然后service启动后检测prefence.检测当前时间和prefence中存储的上次启动的时间的对比。
因为如果一直循环,没有必要。
2.如果不是的话,最好是启动一个timer,不要用while循环,一直循环,会比较耗电,cpu的占用率也高,而且onstartcommand是跑在主线程中的,很容易ANR.