Service可以用ActivityManager.getRunningServices来获取系统运行中的服务
那Widget呢?我的Widget和程序公用一个Service,我想判断我的Widget想在程序退出是判断我的Widget是不是放置在桌面上,如果Widget在运行,退出时就不停止Service。

解决方案 »

  1.   

    枚举任务时,widget如果已经加载,会有进程的
      

  2.   

    你可以监听widget的几个事件,然后来做相应的处理啊:
    1,onEnabled(Context)
    当一个App Widget实例第一次创建时被调用。比如,如果用户添加两个你的App Widget实例,只在第一次被调用。如果你需要打开一个新的数据库或者执行其他对于所有的App Widget实例只需要发生一次的设置,那么这里是完成这个工作的好地方。2,onDeleted(Context, int[])
    当App Widget从宿主中删除时被调用。3,onDisabled(Context)
    当你的App Widget的最后一个实例被从宿主中删除时被调用。你应该在onEnabled(Context)中做一些清理工作,比如删除一个临时的数据库。通过这几个接口,你就掌握了你widget的一些信息,然后你可以存入数据库或者sharePreference里边,不就解决了
      

  3.   

    呵呵,我现在就是这么解决,你给我想到一起去了,不过这样解决貌似不是很稳定,我遇到了一个情况是:
    明明已经删除了所有的Widget,但是sharePreferences里面没有更新,退出程序的时候服务仍然继续工作。
    我想看看有没有其他更准确的判断方法。