我有一个简单的问题:我在我的应用程序中使用commonsware的wakefulintentservice,我已经让它工作了,但是我如何知道WakefulIntentService是否仍在运行?例如,我是否可以在WakefulIntentService类中放置onDestroy并让其记录一些内容,或者是否有其他方法可以查看WakefulIntentService是否正在运行?提前感谢!
我正在使用commonsware的WakefulIntentService在我的应用程序中,我已经让它工作了,但是如何知道WakefulIntentService是否仍在运行?如果你的意思是“它是否曾经运行过”,那么你需要观察它应该完成的工作是否正在进行。如果你的意思是“它现在是否正在运行”,那么可以在DDMS中检查你的线程。我从来没有真正担心过这个问题。当然可以,在WakefulIntentService类中放置一个onDestroy方法并记录一些内容。更新: adb shell dumpsys activity services将列出活动服务。我没有尝试过使用WakefulIntentService,但据我所知,它应该会显示在此处。
doWakefulWork()
已经在后台线程上运行。而且,一旦doWakefulWork()
结束,设备可能会进入睡眠状态,Android也可能终止进程——其中任何一个都可能对您的后台线程造成不良影响。因此,我不建议从doWakefulWork()
(或普通IntentService
的onHandleIntent()
)启动AsyncTask
。 - CommonsWareonDestroy()
方法中使用日志记录,因为不能保证其执行。 - Piovezan