[Android Pro] 有关Broadcast作为内部类时注册的一些问题

很经常Broadcast都会写成一个Activity或者Service的内部类。这时候的注册和普通有点小区别。

有两种情况

1、假如是再Manifest文件里面静态注册的话,需要注意。

ex:

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<receiver android:name=".MyActivity$MyReceiver" >

<intent-filter>

<action android:name="com.example.test.BROADCAST" />

</intent-filter>

</receiver>

</application>

其中关键点是

一、    .MyActivity$MyReceiver   注意类名与内部类的名字之间用$符号隔开。

二、    action里面配的name com.example.test.BROADCAST  当配位这个时,广播发送时

Intent intent = new Intent("com.example.test.BROADCAST");

intent.putExtra("action", "test");

sendBroadcast(intent);

要和Intent里面的参数一致。否则将无法接受到广播。

三、    public static class MyReceiver extends BroadcastReceiver

别忘了给接收器定义成public static的,否则启动会报错。

2、假如为动态注册时

一般写在OnCreate 或者 OnStart等方法里面

IntentFilter filter = new IntentFilter(com.example.test.BROADCAST);

registerReceiver(broadcastReceiver, filter);

动态注册的话就必须启动程序后才能接受到广播,静态注册就算这个程序没启动,也可以接收到广播。

[Android Pro] 有关Broadcast作为内部类时注册的一些问题

时间: 2024-07-31 23:17:21

[Android Pro] 有关Broadcast作为内部类时注册的一些问题的相关文章

[Android Pro] 注册 Google Play 开发者帐户

官网地址: https://support.google.com/googleplay/android-developer/answer/6112435?hl=zh-Hans 博客地址: http://android-developers.blogspot.com/ 注册 Google Play 开发者帐户 要在 Google Play 上发布 Android 应用,您需要创建一个 Google Play 开发者帐户. Introduction (Getting Started) (Google

[Android Pro] Android--Sensor传感器

Android提供了对设备传感器的支持,只要Android设备的硬件提供了这些传感器,Android应用可以通过传感器 来获取设备的外界条件,包括手机的运行状态.当前摆放的方向等.Android系统还提供了驱动程序去管理这些传感器硬件,可以通过监听器的方式监听传感 器硬件感知到的外部环境的变化.本篇博客主要讲解如何简单的使用Android下的传感器,最后将以一个简单的Demo演示. 开发传感器应用步骤 开发一个对于传感器支持的应用十分简单,开发人员只要在传感器管理器SensorManager中为

[Android Pro] 内容提供者ContentProvider的基本使用

一.ContentProvider简介 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.ContentProvider为存储和获取数据提供了统一的接口.虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如采用文件方式对外共享数据,需要进行文件操作读写数据:采用sharedpreferences共享数据,需要使用sharedpreferences API读写数据.而使用ContentProvider共享数据的

[Android Pro] Android权限设置android.permission完整列表

android.permission.ACCESS_CHECKIN_PROPERTIES允许读写访问"properties”表在checkin数据库中,改值可以修改上传( Allows read/write access to the “properties” table in the checkin database, to change values that get uploaded) android.permission.ACCESS_COARSE_LOCATION允许一个程序访问Cel

android开发 关于BroadCast Receiver

 BroadCast Receiver是android常用的技术之一 用于发送/广播Intent消息 下面就介绍两种简单的使用方法 一. 通过组合的方式 在类中定义一个BroadcastReceiver对象 重写onReceive 这样就能接收到广播 这个可以放到一般的Activity类中 首先注册IntentFilter 指定要接收的消息 //注册一个IntentFilter IntentFilter intentFilter = new IntentFilter( "PlayHandle

[Android Pro] Android应用性能测试之CPU和内存占用(转载)

首先稍做分析一下测试环境:我们知道CPU和内存占用是一个实时变化的状态,而市面上还没有具体的哪款android应用能做到实时监控CPU和内存占用并使用log日志保存.考虑到android的底层框架是基于Linux的平台,所有我们可以通过Linux的资源监控命令来实现对android平台的资源实时监控. 要做到上边的测试环境的实现,需要具备以下几点: 1.被测试的手机具备root权限:因为涉及到底层的linux命令,需要读取或执行相应的文件.至于如何root你的手机,不同型号的手机root的方法不

Android Market google play store帐号注册方法流程 及发布应用注意事项【转载】

[转载]http://www.cnblogs.com/zdz8207/archive/2012/07/09/google-play-store-registered.html Android Market google play store帐号注册方法流程 及发布应用注意事项 Android Market google play store帐号申请 注册方法流程 在 Google Play 中发布软件之前,您需要完成以下三项工作: 创建开发人员个人资料 接受开发人员分发协议 通过信用卡支付注册费

[Android Pro] android 杀死进程的方法

1: 杀死自己进程的方法 android.os.Process.killProcess(Process.myPid()); 2:杀死别人进程的方法(不能杀死自己) -------a: activityManager.killBackgroundProcesses ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); activityManager.killBa

[Android Pro] StorageManager简介

StorageManager StorageManager is the interface to the systems storage service. The storage manager handles storage-related items such as Opaque Binary Blobs (OBBs). OBBs contain a filesystem that maybe be encrypted on disk and mounted on-demand from