Android服务

Byt*_*ode 14 service android

请解释Android Service.它与一个Activity怎么不同?它是否依赖于应用程序状态,例如在前台/后台运行?

Jon*_*lis 29

来自Android Developer的SDK服务参考:

服务是一种应用程序组件,表示应用程序希望在不与用户交互的情况下执行较长时间运行的操作,或者为其他应用程序提供使用的功能.

值得注意的是非常重要

与其他应用程序对象一样,该服务在其托管进程的主线程中运行.这意味着,如果您的服务要进行任何CPU密集型(例如MP3播放)或阻止(例如网络)操作,它应该生成自己的线程来执行该工作.

这与最好被理解为用户直接看到并与之交互的内容(UI)形成对比.

如上所述,服务可用于长时间运行的操作,即使您没有前台活动也会继续运行,但如果处于"后台"状态,它们可能会被Android的生命周期终止.如果您需要的服务继续运行的单一实例,而不被杀害并重新启动,我会建议将startForeground(INT ID,通知通知)在你的服务的onCreate方法和stopForeground(布尔removeNotification)在你的服务的onDestroy方法.

例如,我有一个应用程序,使用一个foreground Service记录加速度计数据整夜,而Android设备是在用户的身体旁边.虽然它不需要处于活动状态,但我也有一个Activity广播IntentBroadcastReceiver内部,Service它告诉Service它它还应该Intent用加速度计数据作为附加内容广播到BroadcastReceiver内部Activity.

代码: SleepActivity SleepAccelerometerService

祝您好运,如果您需要更多信息,请告诉我!