android内部类broadcastreceiver,android 公开静态内部类BroadcastReceiver
当想实现广播接收功能时,因java 是单继承,所以一般一个类都会extends Activity,所以会想到内部类来extends BroadcastReceiver,这中间可能会出现两种异常
1:java.lang.RuntimeException: Unable to instantiate
receiver com.example.progressbar.ProgressBarActivity$mBroadcastReceiver:
java.lang.InstantiationException: com.example.progressbar.ProgressBarActivity$mBroadcastReceiver
这是因为内部类需要写成静态的,即static
static class mBroadcastReceiver extends BroadcastReceiver {
//必须为静态公开的(public static)
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
}
}
2: java.lang.RuntimeException: Unable to instantiate
receiver com.example.progressbar.ProgressBarActivity$mBroadcastReceiver:
java.lang.IllegalAccessException: access to class not allowed
这是因为需要将此类写成public ,若没写默认为protected的,则会出现access to class not allowed
正确的为:
public static class mBroadcastReceiver extends BroadcastReceiver {
//必须为静态公开的(public static)
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
}
}
内部类需要加上$
当然还有另一种方法即实现其一个实例
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
}
};
然后就是注册和注销
在onCreate() 或onResume()中调用registerBoradcastReceiver()
public void registerBoradcastReceiver() {
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction(ACTION_NAME);
// 注册广播
registerReceiver(mBroadcastReceiver, myIntentFilter);
}
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(mBroadcastReceiver);
}
android内部类broadcastreceiver,android 公开静态内部类BroadcastReceiver相关推荐
- android 内部类传值,Android Studio中,从内部类
当你使用一个适配器来添加一些东西到一个列表或数组,您需要提醒的列表,在这种情况下数组,即有一个变化.你调用add函数后,你需要调用adapter.notifyDataSetChanged() 此外,声 ...
- Android Service 服务(二)—— BroadcastReceiver
一. BroadcastReceiver简介 BroadcastReceiver,用于异步接收广播Intent,广播Intent是通过调用Context.sendBroadcast()发送.Broad ...
- Android白眉鹰王之BroadcastReceiver
传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 BroadcastReceiver作为Android四大组件之一,不像Act ...
- android 屏蔽 广播,Android中使用BroadcastReceiver打开和关闭WIFI
由于自动化测试需要,我们希望能够简单的控制Android手机的WIFI开和关,而不是通过UI操作的方式.由于每个Android机型的UI都千差万别,所以需要找到一个通用得方式来满足我们的需求. 最开始 ...
- Android四大组件:广播机制——BroadcastReceiver
Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器).广播作为 ...
- Android内部类监听和多对象监听方法
工程目录: 一.内部类监听 MainActivity: package com.example.demo_two;import androidx.appcompat.app.AppCompatActi ...
- Android 面试(Android 篇)
Android 面试 安卓篇 一.跨进程通信的几种方式 二.多进程应用使用场景 三.Binder 机制 (进程间的通信) 四.说一说 ANR 五.什么是OOM,如何避免解决 六.内存泄露,内存溢出,内 ...
- Android开发之 Android 的基本组件的概述
Android是一个为组件化而搭建的平台,它的应用是由一些零散的有联系的组件组成,并通过AndroidManifest.xml文件 把它们绑定起来. Android常用的组件有: Activity(活 ...
- android 壁纸服务,Android视频壁纸的实现
视频壁纸属于动态壁纸,所以视频壁纸就可以用Android系统提供的动态壁纸服务来实现.首先先介绍一下在实现过程中会用到的几个类. WallpaperManager Android提供的用于管理壁纸的类 ...
最新文章
- 当决定使用 Ubuntu 来开发时
- 团队-团队编程项目作业名称-需求分析
- SpringBoot高级消-息-RabbitMQ基本概念简介
- 牛客21781 牛兄牛弟
- s905各种型号的区别_预行式增压缸和直压增压缸有什么区别?
- 3分钟快速presentation
- 你第1个100万怎么赚的?
- Kafka和Unix管道的示例
- 对数几率回归(Logistic Regression)
- 关于Redis缓存和数据库一致性问题
- 【小强推歌】---奥斯卡金曲MP3[下载]
- 离散数学西电版复习笔记——第一章:命题逻辑
- 华为云下docker安装svn
- 【论文笔记】Character-Aware Neural Language Models
- 3.2 电话号码对应英语单词
- java.net.SocketException和错误:org.apache.ftpserver.FtpServerConfigurationException
- 红米android10参数,红米10x5g手机参数 红米10x5g手机参数有哪些
- Python+Vue计算机毕业设计社团管理系统7qls9(源码+程序+LW+部署)
- 初学Java入门介绍
- 组合----隔板法分堆分配
热门文章
- Bootstrap-select使用说明
- springboot:web开发-Thymeleaf
- 用git提交代码到远程仓库遇到的问题
- python审批流系统_有赞移动关于权限与审批流程的标准化
- python列表存储字符串_Python 基础知识全篇-字符串列表
- python61到08使用说明书_python 08 文件操作
- java销售额查询_用JSP+JavaBean开发模式实现一个销售额的查询
- mysql没加引号导致全表扫描_mysql隐蔽的索引规则导致数据全表扫描
- Win11黑夜模式在哪开启 Win11黑夜模式怎么开启
- MySQL 中 count(*) 和 count(1) 有什么区别?哪个性能最好?