创建前台Service

来源:互联网 发布:rx1r2 知乎 编辑:程序博客网 时间:2024/06/01 08:16

android采用一种动态的方法管理资源,这就是导致应用程序组件可能在很少或者没有警告的情况下被终止。当确定哪个应用程序或者组件可以被终止时,android给正在运行的Service赋予了第二高的优先级,只有处于激活状态,前台运行的Activity才可以拥有更高的优先级。在service需要直接和用户交互的情况下(比如播放音乐),也许应该把service的优先级提升到与前台Activity一样高。可以通过Service的startForeground方法来设置该Service在前台运行。

由于前台Service预期会和用户直接交互,因此在调用startForeground方法的时候,必须指定一个持续工作的Notification.只要Service在前台运行,这个通知就会被显示。

startForeground(NOTIFICATION_ID,mynotification);

将一个Service设为前台运行可以有效地避免运行时在释放资源的时候终止这个Service.如果同时运行多个这种不可终止的Service,系统就会很困难。所有需谨慎啊。

当Service不再需要前台运行的优先级时,可以使用stopForeground方法,把它移到后台。并可以选择是否移除通知。Notification在Service停止或者终止的时候是会自动取消的

stopForeground(true);


1 0