android入门——BroadCast(2)

自定义广播

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.wkp.broadcast">

    <!-- 声明自定义权力 -->
    <permission android:name="com.example.wkp.broadcast.MY_PEMISSION"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <!--<intent-filter>-->
                <!--<action android:name="android.intent.action.MAIN" />-->

                <!--<category android:name="android.intent.category.LAUNCHER" />-->
            <!--</intent-filter>-->
        </activity>

        <activity android:name=".SecondActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <receiver android:name=".MyReceiver2">
            <intent-filter>
                <action android:name="com.example.wkp.broadcast.MY_ACTION"/>
            </intent-filter>
        </receiver>
         <!--静态注册 -->
        <receiver android:name=".MyReceiver">
            <intent-filter>
                <!-- 动作   打开飞行模式时触发广播 -->
                <!--<action android:name="android.intent.action.AIRPLANE_MODE"/>-->
                <!-- 收到短信时  暂时无法实现 -->
                <!--<action android:name="android.provider.Telephony.SMS_RECEIVED"/>-->
                <!--<action android:name="android.provider.Telephony.SMS_DELIVER"/>-->
            </intent-filter>
        </receiver>
    </application>

    <!-- 开启短信权限 -->
    <uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
    <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
    <uses-permission android:name="android.permission.READ_SMS"></uses-permission>

    <!-- 自定义权力 -->
    <uses-permission android:name="com.example.wkp.broadcast.MY_PEMISSION"></uses-permission>

</manifest>

AndroidMainfest.xml

注意声明自定义权力

<permission android:name="com.example.wkp.broadcast.MY_PEMISSION"/>

开启权力

<uses-permission android:name="com.example.wkp.broadcast.MY_PEMISSION"></uses-permission>

静态注册

<receiver android:name=".MyReceiver2">    <intent-filter>        <action android:name="com.example.wkp.broadcast.MY_ACTION"/>    </intent-filter></receiver>

package com.example.wkp.broadcast;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

/**
 * Created by wkp on 2016/9/21.
 */
public class MyReceiver2 extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.v("hh","get broadcast");
    }
}

MyReceiver2.java

接收器

package com.example.wkp.broadcast;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

/**
 * Created by wkp on 2016/9/21.
 */
public class SecondActivity extends Activity {
    private Button btn=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        btn= (Button) findViewById(R.id.send);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent();
                intent.setAction("com.example.wkp.broadcast.MY_ACTION");
                sendBroadcast(intent,"com.example.wkp.broadcast.MY_PEMISSION");
                Log.v("hehe","already send");
            }
        });
    }
}

SecondActivity.java

点击按钮发送广播

有序广播先定义先接收

abortBroadcast();忽略广播

可以通过android:priority制定优先级  不写为0

可以设置是否接收其他app的广播

可以设置是否被其他app接收广播 本地广播LocalBroadcastManager

private LocalBroadcastManager manager= LocalBroadcastManager.getInstance(this);

LocalReceiver receiver=new LocalReceiver();

IntentFilter filter=new IntentFilter();

filter.addAction("com.example.wkp.broadcast.MY_ACTION");

manager.registerReceiver(receiver,filter);

时间: 2024-10-17 13:03:51

android入门——BroadCast(2)的相关文章

android入门开发教程之网络性能的优化

我在麦子学院上android开发的时候,麦子学院android开发老师讲到Android开发过程中经常会涉及到性能优化的问题,应该从基础.网络.测试等各个层面进行整合优化.现在咱们聊聊Android开发之网络性能的优化. 1)避免频繁网络请求 访问server端时,建立连接本身比传输需要跟多的时间,如非必要,不要将一交互可以做的事情分成多次交互(这需要与Server端协调好).有效管理Service 后台服务就相当于一个持续运行的Acitivity,如果开发的程序后台都会一个service不停的

Android入门:Activity四种启动模式

Android入门:Activity四种启动模式 一.启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置: 启动模式有4种,分别为standard.singleTop.singleTask.singleInstance: 讲解启动模式之前,有必要先讲解一下“任务栈”的概念; 任务栈 每个应用都有一个任务栈,是用来存放Activity的,功能类似于函数调用的栈,先后顺序代表了Activity

小猪的Android入门之路 Day 8 part 2

小猪的Android入门之路 Day 8 part 2 Android网络编程浅析--Android访问网络资源 --转载请注明出处:coder-pig 本节引言: 在part 1中我们学习了网络交互中用得较多的xml文件的相关概念,以及在Android中常用的 解析XML三种不同形式,分别SAX,DOM,Pull三种不同的解析方式;而在part 2中我们将会 讲解我们的应用如何去获取网络上的资源,分别是图片,HTML代码,XML代码和JSON数据; 好了,废话就这么多,开始本节的课程吧!从这p

Android入门教程之我见

真正的从安卓入门学习到实际工作也差不多一年时间了,也做了几个项目.在这期间经历了一开始学习Android的基本知识后仍旧无从下手,不知道如何开始开发一个app,到现在也开始学会注意Android架构的设计优化,学会开始阅读源码,渐渐地向Android更高级的知识进阶. 首先要感谢一下Google把Android开源了,加上Android开发人员十分活跃且富有分享精神,这才让网上关于Android的资料十分丰富,往往遇到一个问题都能从网上找到答案,这对于初学者特别是靠自学没有人带的情况下提供很多的

小猪的Android入门之路 Day 8 part 4

小猪的Android入门之路 Day 8 part 4 Android网络编程浅析--Android网络数据的上传 --转载请注明出处:coder-pig 本节引言: 在part 3中我们已经学习了Android网络数据的下载,难点是多线程断点续传下载; 有下载,当然也有上传啦,本节就来研究下Android中的网络数据的上传! 1.使用GET或者Post方式上传数据给服务器 2.使用开源框架HttpClient上传数据到服务区 3.发送xml数据给服务器 4.通过Http协议上传文件 5.Web

小猪的Android入门之路 Day 4 - part 4

小猪的Android入门之路 Day 4 - part 4 Android事件处理机制之--事件处理机制拾遗 ------------转载请注明出处--coder-pig 本节引言: 在前面三个部分中,对于android的事件处理机制的学习已经学得七七八八了, 基于监听与回调的时间处理机制,以及使用Handler传递信息的机制都已经学了; 在最后这个部分中会对一些小的知识点进行补充,比如触摸事件的两种形式, Configuration类以及异步任务AsyncTask进行讲解,好了,开始本节的课程

小猪的Android入门之路 Day 3 - part 1

小猪的Android入门之路 Day 2 各种UI组件的学习 Part 1 本节引言: 在上一节中,我们初次体验了Android开发的一个流程,开发了一个简单的电话拨号器; 然后又学习了android的六大布局,界面无非是由布局 + 控件构成;布局都学了,剩下的 当然是控件啦,不过Android 所提供的UI组件还是比较丰富的;我们不求掌握他们的全部 用法,只需要了解一些基本的用法,等需要时再查资料就可以了!当然,内容是以android UI 组件实例大全为依托的,因为内容较多,所以需要分成几个

Android -- 利用Broadcast开启Service

Broadcast和Service都是Android四大组建之一的. 这里的广播是动态的,自己注册的一个广播. 这种最典型的用法就是利用开机广播,然后再起自己的服务,也就是在Android手机中做到开启启动. Service与Broadcast                                                                 public class MyService extends Service { private MyReceiver rec

Android入门:广播发送者与广播接收者

参考: Android入门:广播发送者与广播接收者 - xiazdong - CSDN博客http://blog.csdn.net/xiazdong/article/details/7768807 一.广播发送者&广播接收者介绍 1.广播接收者 广播接收者简单地说就是接收广播意图的Java类,此Java类继承BroadcastReceiver类,重写: public void onReceive(Context context,Intent intent),其中intent可以获得传递的数据: