[Android]_[Service]
2016-02-28 23:49
477 查看
服务(Service)是Android 中实现程序后台运行的解决方案,它非常适合用于去执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使当程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。不过需要注意的是,服务并不是运行在一个独立的进程当中的,而是依赖于创建服务
时所在的应用程序进程。当某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止运行。
另外,也不要被服务的后台概念所迷惑,实际上服务并不会自动开启线程,所有的代码都是默认运行在主线程当中的。也就是说,我们需要在服务的内部手动创建子线程,并在这里执行具体的任务,否则就有可能出现主线程被阻塞住的情况。
服务的基本使用
public class MyService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Log.d("MyService", "onCreate executed");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("MyService", "onStartCommand executed");
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d("MyService", "onDestroy executed");
}
}
可以看到,这里我们又重写了onCreate()、onStartCommand()和onDestroy()这三个方法,它们是每个服务中最常用到的三个方法了。其中onCreate()方法会在服务创建的时候调用,onStartCommand()方法会在每次服务启动的时候调用,onDestroy()方法会在服务销毁的时候调用。
注意需要在AndroidManifest.xml 文件中进行注册才能生效,如下:
<service android:name=".MyService" >
</service>
启动服务:
Intent startIntent = new Intent(this, MyService.class);
startService(startIntent); // 启动服务
停止服务:
Intent stopIntent = new Intent(this, MyService.class);
stopService(stopIntent); // 停止服务
时所在的应用程序进程。当某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止运行。
另外,也不要被服务的后台概念所迷惑,实际上服务并不会自动开启线程,所有的代码都是默认运行在主线程当中的。也就是说,我们需要在服务的内部手动创建子线程,并在这里执行具体的任务,否则就有可能出现主线程被阻塞住的情况。
服务的基本使用
public class MyService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Log.d("MyService", "onCreate executed");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("MyService", "onStartCommand executed");
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d("MyService", "onDestroy executed");
}
}
可以看到,这里我们又重写了onCreate()、onStartCommand()和onDestroy()这三个方法,它们是每个服务中最常用到的三个方法了。其中onCreate()方法会在服务创建的时候调用,onStartCommand()方法会在每次服务启动的时候调用,onDestroy()方法会在服务销毁的时候调用。
注意需要在AndroidManifest.xml 文件中进行注册才能生效,如下:
<service android:name=".MyService" >
</service>
启动服务:
Intent startIntent = new Intent(this, MyService.class);
startService(startIntent); // 启动服务
停止服务:
Intent stopIntent = new Intent(this, MyService.class);
stopService(stopIntent); // 停止服务
相关文章推荐
- Android数据存储
- Android 和JAVA 免费学习资料!
- 4.5.7 如何导入PullToRefresh 到Android Studio中
- Android Studio添加本地开源库的方法
- android 按两次返回键退出应用
- Android 如何点击改变ListView行布局的TextView内容和颜色背景
- android gif动画开源框架android-gif-drawable
- android gif动画开源框架android-gif-drawable
- android gif动画开源框架android-gif-drawable
- Android Studio 运行代码时device不能识别genymotion设备
- 第6章 Android绘图机制与处理技巧(Part 1)
- Device Compatibility --1.3
- Android BLE编程
- android中Handle类的用法
- Android Studio下ActionBar示例
- Android学习笔记day10
- Android 蓝牙对等通信初探
- Android Studio 报:AndroidManifest.xml (系统找不到指定的路径。) 错误
- 《Android开发艺术探索》读书笔记 (2) 第2章 IPC机制
- java.lang.NoSuchFieldError: android.support.v7.appcompat.R$styleable.Theme_w的解决办法