Android四大组件服务(Service)
2015-05-12 20:23
369 查看
服务(Service)是Android四大组件之一,主要用于后台运行和跨服务进程访问。Service并没有UI部分,而是一直在Android系统的后台运行。应用程序一般使用service做一些后台运行的工作,例如,下载文件。
Service也是有生命周期的,但Service的生命周期很简单,只有3个阶段:
创建服务;
开始服务;
销毁服务;
一个服务只会创建一次,销毁一次,但可以开始多次
Service也需要去AndroidManifest.xml文件中配置
android:enabled属性的值为true,表示MyService服务处于激活状态。虽然是激活的但是系统不会启动,想要启动必须显示地调用startService。停止也是一样stopService。
当然我们可以弄开机启动Service,类似Broadcast Receiver(我上一篇博客有讲)。
配置文件
运行,然后重启模拟器,看看LogCat试图中是否输出了相应的日志信息。
Service也是有生命周期的,但Service的生命周期很简单,只有3个阶段:
创建服务;
开始服务;
销毁服务;
一个服务只会创建一次,销毁一次,但可以开始多次
public class MyService extends Service{ @Override public IBinder onBind(Intent intent) { return null; } //当服务第一次创建时调用 @Override public void onCreate() { Log.d("MyService","onCreate"); super.onCreate(); } //当服务销毁时调用 @Override public void onDestroy() { Log.d("MyService","onDestroy"); super.onDestroy(); } //开始服务是调用 @Override public void onStart(Intent intent, int startId) { Log.d("MyService","onStart"); super.onStart(intent, startId); } }
Service也需要去AndroidManifest.xml文件中配置
<service android:enabled="true" android:name=".MyService"/>
android:enabled属性的值为true,表示MyService服务处于激活状态。虽然是激活的但是系统不会启动,想要启动必须显示地调用startService。停止也是一样stopService。
当然我们可以弄开机启动Service,类似Broadcast Receiver(我上一篇博客有讲)。
public class StartupReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent serviceIntent = new Intent(context,MyService.class); //启动Service context.startService(serviceIntent); Log.d("start_service","OK!"); } }
配置文件
<uses-permission android:name="ANDROID.PERMISSION.RECEIVE_BOOT_COMPLETED"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".MyService"/> <receiver android:name=".StartupReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> </application>
运行,然后重启模拟器,看看LogCat试图中是否输出了相应的日志信息。
相关文章推荐
- Android四大组件之Service(一)本地服务
- Android四大核心组件之一-----Service(服务)的基本知识
- Android四大组件--服务(Service)
- android四大组件基础(五),绑定Service服务(含IPC)
- Android 四大组件之一:Service后台服务之IntentService
- Android 四大组件学习之 Service 服务
- Android笔记---四大组件之Service服务详解
- 【Android四大组件之Service】(一)Android中Service(服务)的官方介绍
- Android四大组件之Service(服务)实例详解
- Android四大组件之Service(二)远程服务(AIDL进程间通信)
- Android 编程下的四大组件之服务(Service)
- Android四大组件之 服务Service
- Android四大组件之Service服务
- Android 编程下的四大组件之服务(Service)
- Android四大组件之一Service(服务)
- Android四大组件之Service(观第一行代码2随记)一.服务简介
- Java乔晓松-android的四大组件之一Service(服务的绑定)
- Android四大基本组件(2)之Service 服务与Content Provider内容提供者
- Android四大组件——Service后台服务、前台服务、IntentService、跨进程服务、无障碍服务、系统服务
- Android四大组件Service 服务