广播的定义,如果是内部类,必须为静态类.

下面总结一下作为内部类的广播接收者在注册的时候需要注意的地方
 
1.清单文件注册广播接收者时,广播接收者的名字格式需要注意。因为是内部类,所以需要在内部类所在的类与内部类之间加上$符号:
 
<receiver android:name=".MainActivity$MyReciver">
<intent-filter>
<action android:name="com.qianfeng.1605"></action>
</intent-filter>
</receiver>

2.内部类在声明时一定要写成静态内部类(class关键字前加上static)。否则会抛出类似这样的异常:

java.lang.RuntimeException: Unable to instantiate receiver com.example.brocastdemo.MainActivity$MyReceiver: 
java.lang.InstantiationException: 
      can't instantiate class com.example.brocastdemo.MainActivity$MyReceiver; no empty constructor 
3.静态内部类里面的控件也需要写成static

static TextView tv_name;

static TextView tv_password;
public static class MyReciver extends BroadcastReceiver{

    @Override
public void onReceive(Context context, Intent intent) { Toast.makeText(context,intent.getStringExtra("name"),Toast.LENGTH_SHORT).show();
Toast.makeText(context,intent.getStringExtra("password"),Toast.LENGTH_SHORT).show();
tv_name.setText(intent.getStringExtra("name"));
tv_password.setText(intent.getStringExtra("password"));
}
}

大家可能会发现,采用静态注册的作为内部类的广播接收者使用起来很不方便,因为是静态内部类,所以该类中如果想使用外部类的变量/方法,该变量/方法也得是静态的。
所以还是强烈推荐大家使用动态方式注册。
 
 
 
 
 

Android广播错误.MainActivity$MyReceiver; no empty constructor的更多相关文章

  1. Android广播机制分析

    1.1. 广播简单介绍         Android 广播与生活中的广播概念不同,它是指系统中产生事件后的通知. Android 广播不关心接收者是否收到处理或者怎样处理广播,能够说是一种单向的通知 ...

  2. Android广播机制的深入学习

    部分内容转载自http://www.cnblogs.com/lwbqqyumidi/p/4168017.html 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者 ...

  3. Android总结篇系列:Android广播机制

    1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...

  4. Android广播机制概述

    1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...

  5. Android广播机制:Broadcast

    转载:Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广 ...

  6. Android广播机制(转)

    1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为Android组件间的通 ...

  7. Android广播机制

    原文出处: Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的 ...

  8. 【Android】Android 广播大全

    [Android]Android 广播大全 String ADD_SHORTCUT_ACTION 动作:在系统中添加一个快捷方式. String ALL_APPS_ACTION 动作:列举所有可用的应 ...

  9. Android随笔之——Android广播机制Broadcast详解

    在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理.这个广播跟我们传统意义中的电台广播有些相似之处.之所以叫做广播,就 ...

随机推荐

  1. yii2安装

    https://github.com/settings/tokens  设置token 在安装的时候 要复制进去 复制到安装命令中去

  2. Oracle正确删除archivelog文件(转)

    from:http://www.itpub.net/thread-1636118-6-1.html Oracle在开启了归档模式后,会在指定的archive目录下产生很多的archivelog文件,而 ...

  3. WebApi:自定义筛选器

    最近在项目中有这样一个需求,记录每次Api访问的调用时间,运行时间,传入数据,返回数据等信息. 第一反应就是添加一个类,用来实现相应的功能,然后在方法的代码中添加,但是这样的话,需要修改所有的方法的代 ...

  4. SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移

    SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移 上一篇文章已经为配置镜像数据库做好了准备,接下来就要进入真正的配置阶段 一.在镜像数据库服务器上设置安全性并启动数据 ...

  5. java readLine()

    原文 虽然写IO方面的程序不多,但BufferedReader/BufferedInputStream倒是用过好几次的,原因是: 它有一个很特别的方法:readLine(),使用起来特别方便,每次读回 ...

  6. [FFmpeg] ffmpeg参数详解

    ffmpeg 参数语法 ffmpeg [[options][`-i' input_file]]... {[options] output_file}... 如果没有输入文件,那么视音频捕捉就会起作用. ...

  7. Visual Studio Enterprise 2015下载 Update3

    Visual Studio 2015 是一个丰富的集成开发环境,可用于创建出色的 Windows.Android 和 iOS 应用程序以及新式 Web 应用程序和云服务. 1.适用于各种规模和复杂程度 ...

  8. Struts2.3.4+Hibernate4.2.4+Mysql6.0整合

    1.项目搭建过程: (1). 创建一个Web Project.导入Struts2和Hibernate的jar包.(如果不知道Struts2的jar包,可以在下载的struts的jar包中,找到apps ...

  9. django model 中class meta

    class Meta: ordering = ['-num', 'length'] verbose_name = 'name' verbose_name_plural = 'names' orderi ...

  10. tinyxml学习5

    读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好. TinyXML是一个开源的解 ...