Android 四大组件
我们先来说一下都有哪些:
- Activity
2.Service 服务
3.BroadcastReceiver 广播
4.ContentProvider 内容提供者
Activity的应用我们都已经特别的了解 我今天就不讲解了 今天主要是来讲解一下 Service 和 BroadcastReceiver 广播 这两个重要组件的使用方式 :
首先说一下 Service
服务:
1.动态注册
创建一个类继承与Service

注意:在清单文件中完成注册声明:

2.静态注册:

使用我们Android Studio 找到Service 进行创建 或帮助我们默认在清单文件中完成注册
如何完成我们Activity和Service 服务直接的通信呢?
我们启动服务有两种方式:
1.启动服务:

注意在我们的onDestroy方法中停止我们的服务 避免造成内存泄漏

2.绑定服务

注意在我们的onDestroy方法中解绑我们的服务 避免造成内存泄漏

我们知道Service是运行在主线程的 如果我们想在服务中做一些耗时操作的话 我们是不能在我们的服务中做的 这里我们就用到了Service的一个子类IntentService 它里面封装了子线程 就可以完成我们所想要的在服务中做耗时操作这个需求 下面我来介绍一下IntentService 的使用
IntentService:
IntentService是Service的子类 内部帮我们封装了Looper 进行使用

如何使用呢:
首先创建一个类继承IntentService

也可以通过我们的Android Studio 进行创建:

这里我建议使用开启服务来创建我们的IntentService

我们接下来就可以在onHandleIntent()这个方法中做我们想要完成的耗时操作了
注意在我们的onDestroy方法中停止我们的服务 避免造成内存泄漏
BroadcastReceiver
创建广播:
静态注册广播:

并且在清单文件中注册:

动态注册:

我们开启广播的方式有两种:
有序 无序:

注意销毁:

网友评论