Broadcast之系统时间流逝广播

  广播相关的基础知识在这里我就不详述了,这里我主要是总结下在使用广播时接收不到广播的几种原因。当然,这里只是我个人学习和使用广播的一些个人经验,可能存在不准确或不全的地方,希望看到这篇播客的朋友能够指正、补充,让后面学习的人能够少走弯路,更好更快的学习。

  一个广播包含三部分:注册、发送、接收。当你这三部分都包含了,但是还是接收不到广播的话,就很有可能是出现以下问题中的一种或多种。

一、没有添加权限。例如:开机启动的广播,这是一个系统广播,出于安全考虑,系统要求必须声明接收开机启动广播的权限:

  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

  如果接收不到广播,你首先可以查看下你是否声明了权限。当然如果是不需要声明权限的广播,则不需要考虑。

二、注册方式不正确。有的系统广播必须动态注册才能生效,例如:系统时间流逝广播。因此,在你使用系统广播时,一定要查清楚该广播的注册方式是只能动态注册还是动态、静态  注册都可以。

三、android4.0以上版本,该广播应用没有运行过或在设置中强制停止了应用。这是Google采用的新机制,在一定程度上避免垃圾软件、病毒。所以广播应用接收不到,你想想是否  运行过、设置中是否强制停止了应用。

四、被安全软件强制杀掉进程。如果前面几种情况都没有解决问题,那么你的广播应用很有可能被你手机安装的安全软件给强制杀掉进程了。

以上四点就是我在学习、使用广播过程总结的四种可能导致你接收不到广播的原因。当然,这是在你基本的注册、发送、接收代码没有问题的情况下。

下面我把系统时间流逝广播的例子给大家贴出来:

注册发送广播代码:

MyReceiver myReceiver = new MyReceiver();   //这是自定义的接收广播类,继承BroadcastReceiver
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_TIME_TICK);
registerReceiver(myReceiver, filter);

接收广播代码(onReceive方法中):

if (intent.getAction().equals(Intent.ACTION_TIME_TICK)) {

  //这里就是你的逻辑代码了

}

很简单,系统时间流逝广播的关键代码就这么多。值得注意的是Intent.ACTION_TIME_TICK,这个一定不能写错,网上有不少系统时间流逝广播的相关代码是不正确的。

时间: 2024-10-12 09:17:26

Broadcast之系统时间流逝广播的相关文章

17_Android中Broadcast详解(有序广播,无序广播)最终广播,Bundle传递参数,传递参数的时候指定权限

?? 1  Broadcast是Android中的四大组件之一,他的用途很大,比如系统的一些广播:电量低.开机.锁屏等一些操作都会发送一个广播. 2  广播被分为两种不同的类型:"普通广播(Normalbroadcasts)"和"有序广播(Ordered broadcasts)".普通广播是完全异步的,可以在同一时刻(逻辑上)被所有广播接收者接收到,消息传递的效率比较高,但缺点是:接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播:然后有序广

关于监听系统开机广播的权限问题

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.broadcastofboot"> <uses-permission android:name="android.permissio

Android系统中的广播(Broadcast)机制简要介绍和学习计划

在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制:这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用:本文通过一个简单的例子来学习Android系统的广播机制,为后续分析广播机制的源代码作准备. 在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它们之间可以用来通信的方式

广播接收者--Broadcast

什么是Broadcast BroadcastReceiver是安卓中的四大组件之一. 广播接收器,也被称为全局事件,或系统事件. 当Android系统中任何程序有动作时,如果想通知其他程序,采用广播的方式进行传播是非常有效的.广播从理论上说,可以将一个动作传播给任意多个程序(当然,广播接收器的数量会受到系统限制). 在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理.这个广播跟我们传统意义中的电台广播有些相似之处.

Android 系统 广播大全(转)

转自:http://www.apkbus.com/android-120202-1-1.html Intent.ACTION_AIRPLANE_MODE_CHANGED; //关闭或打开飞行模式时的广播 Intent.ACTION_BATTERY_CHANGED; //充电状态,或者电池的电量发生变化 //电池的充电状态.电荷级别改变,不能通过组建声明接收这个广播,只有通过Context.registerReceiver()注册 Intent.ACTION_BATTERY_LOW; //表示电池

安卓开发笔记——Broadcast广播机制(实现自定义小闹钟)

什么是广播机制? 简单点来说,是一种广泛运用在程序之间的传输信息的一种方式.比如,手机电量不足10%,此时系统会发出一个通知,这就是运用到了广播机制. 广播机制的三要素: Android广播机制包含三个要素:广播(Broadcast) - 用于发送广播:广播接收器(BroadcastReceiver) - 用于接收广播:意图(Intent)-用于保存广播相关信息的媒介. 可以把它理解成我们的传统电视台,我们的电视就是一个广播接收器,然而电视有很多频道,是由电视台发送出来的,也就是广播了,意图可以

广播——broadcast

广播机制简介 广播分类 标准广播 有序广播 接收系统广播 动态注册监听网络变化 静态注册实现开机启动 注意耗时操作 发送自定义广播 发送有序广播 发送有序广播步骤 优先级 使用本地广播 出现原因 本地广播使用 优点 广播优先级 基本原则 ordered 广播 非 ordered 广播 只能动态接受广播源码分析 目的 参考httpblogcsdnnetgemmemarticledetails8859493 广播注册过程分析 静态注册 Receiver 的流程 动态注册 Receiver 的流程 广

《Android深入透析》之广播(Broadcast)

摘要 在android中,Broadcast作为四大组件之一,被广泛的应用在android程序之间的数据传递.举一个大家都比较熟悉的例子来说明.在车上的时候大家都有收听广播的习惯,广播电台通过发送不同频率的信号,然后大家通过将各自频率调成和电台相同的频率,就可以接受到广播内容了.在android中的广播其实是和这个是一样的效果的. 1.     概述 在android中,Broadcast作为四大组件之一,被广泛的应用在android程序之间的数据传递.举一个大家都比较熟悉的例子来说明.在车上的

Android为什么需要广播Broadcast

   在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它们之间可以用来通信的方式就更多了,这样看来,广播机制似乎是多余的.然而,广播机制却是不可替代的,它和Binder机制不一样的地方在于,广播的发送者和接收者事先是不需要知道对方的存在的,这样带来的好处便是,系统的各个组件可以松耦合地组织在一起,这样系统就具有高度的可扩展性,容易与其它系统进行集成. 在