前台进程(foreground process):该进程包含正在与用户交互的界面组件,或者,该进程中有服务组件和用户交互界面组件想绑定,或者该进程中有服务组件的onstart等方法正被执行,或者该进程中包含前台服务组件,即该服务组件调用过Service.startForeground函数,或者该进程中有触发器组件onReceive方法正在被执行。
可视进程(visible process):该进程的界面组件虽没有与用户直接交互,但对于用户而言可见,或者该进程中的服务组件被用户可视的界面组件绑定。
服务进程(service process):该进程包含仍在执行后台操作的服务组件
后台进程(background process):该进程包含组件界面,但这些组件没有和用户交互,也不会被用户看见。
空进程(empty process):该进程中已没有任何运行中的界面组件、服务组件、或者是触发器组件。
前台服务是那些被认为用户知道的并且在内存低的时候不允许系统杀死的服务。前台服务必须给状态栏一个通知,他被放到了正在运行中 标题下,这就意味着直到这个服务被终止或从前台删除通知才能被解除。
例如:
Notification notification = new Notification(R.drawable.icon, getText(R.string.ticker_text),
System.currentTimeMillis());
Intent notificationIntent = new Intent(this, ExampleActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(this, getText(R.string.notification_title),
getText(R.string.notification_message), pendingIntent);
startForeground(ONGOING_NOTIFICATION, notification)
startForeground()方法的作用是将服务提升到前台运行,前台状态的通知具有On-Going的标志位。stopForeground()即取消。