首页 / 数码设备 / 正文

安卓系统服务是一种在后台运行的组件,可以在不与用户直接交互的情况下执行某些操作。要打开安卓系统服务,可以通过创建服务来实现。服务在其托管进程的主线程中运行,如果服务将执行任何 CPU 密集型工作或阻止性操作(例如 MP3 播放或联网),则应通过在服务内创建新线程来完成这项工作。通过使用单独的线程,可以避免发生“应用无响应” 错误的风险,而应用的主线程仍可继续专注于运行用户与 Activity 之间的交互。创建服务的步骤如下:

1、使用清单文件声明服务:在 AndroidM 文件中声明服务,使用 <service> 元素指定服务的名称、描述以及使用服务的类。例如:

<

manifest

.

.

.

>

<

application

.

.

.

>

<

service android

:

name

=

".ExampleService"

/

>

.

.

.

<

/

application

.

.

.

>

.

.

.

<

/

manifest

.

.

.

>

2、创建服务类:创建服务类,继承 Service 类,并实现必要的方法,例如 onCreate、onStartCommand 和 onDestroy。例如:

public

class

ExampleService

extends Service

{

@Override

public void onCreate

;">)

{

//

服务创建时调用

}

@Override

public

int

onStartCommand

;">,

int

flags

,

int

startId

)

{

//

服务启动时调用

return

START_STICKY

;

}

@Override

public void onDestroy

;">)

{

//

服务销毁时调用

}

@Override

public IBinder onBind

;">)

{

//

绑定服务时调用

return

null

;

}

}

3、启动服务:启动服务可以通过调用 startService 方法来实现。例如:

Intent intent

=

new Intent

;">,

ExampleService

.

class

)

;

startService

;">)

;

如果服务已经运行,则调用 startService 不会创建新的服务实例,而是调用 onStartCommand 方法。

4、停止服务:停止服务可以通过调用 stopService 或 stopSelf 方法来实现。例如:

Intent intent

=

new Intent

;">,

ExampleService

.

class

)

;

stopService

;">)

;

调用 stopSelf 方法可以在服务内部停止服务,例如:

public

class

ExampleService

extends Service

{

@Override

public void onDestroy

;">)

{

super

.

onDestroy

;">)

;

stopSelf

;">)

;

}

}

除了普通的服务,还有前台服务。前台服务是用户主动意识到的一种服务,因此在内存不足时,系统也不会考虑将其终止。前台服务必须为状态栏提供通知,将其放在运行中的标题下方。只有当应用执行的任务需供用户查看(即使该任务未直接与应用交互)时,才应使用前台服务。因此,前台服务必须显示优先级为 PRIORITY_LOW 或更高的状态栏通知。如果某操作不是特别重要,因而希望使用最低优先级通知,则可能不适合使用服务;相反,可以考虑使用计划作业。

如有侵权请及时联系我们处理,转载请注明出处来自