LocalBroadcastManager与IntentService的简单使用

我们在使用BroadcastManager的时候,会分为隐式和显式两种广播。他们各有各的用处,但是在使用隐式广播的时候,会因为其覆盖的面比较大,会因为一些原因被其它应用程序所得到我们的广播内容。LocalBroadcastManager是一个只在本应用内使用的BroadcastManager。它的代码很少只有300多行,想了解细节的朋友可以去看一下源代码。
IntentService是Service的一个子类,可以看做是Service和HandlerThread的结合体,在完成了使命之后会自动停止,适合需要在工作线程处理UI无关任务的场景。
IntentService有以下三个特点:
1、IntentService 是继承自 Service 并处理异步请求的一个类,在 IntentService 内有一个工作线程来处理耗时操作。
2、当任务执行完后,IntentService 会自动停止,不需要我们去手动结束。
3、如果启动 IntentService 多次,那么每一个耗时操作会以工作队列的方式在 IntentService 的 onHandleIntent 回调方法中执行,依次去执行,使用串行的方式,执行完自动结束。
下面我们通过一个例子来看一下,它们的使用
activity_main.xml

package com.cg.intentservcelearn;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;

import com.cg.intentservcelearn.services.MyIntentService;
import com.cg.intentservcelearn.services.MyService;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btn_1;
    private Button btn_2;
    private Button btn_3;
    private SeekBar seekbar1;
    private SeekBar seekbar2;

    private LocalBroadcastManager localBroadcastManager;
    private MyBroadcastReceiver mBroadcastReceiver;
    public final static String ACTION_TYPE_THREAD = "action.type.thread";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initControls();


        //注册广播
        l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值