Android实现AppWidget、Broadcast静态注册
Android实现AppWidget、Broadcast静态注册
本篇博客是基于我上一篇博客继续修改的,详情请看Android实现AppWidget、Broadcast动态注册
开发工具:Andorid Studio 1.3
运行环境:Android 4.4 KitKat
工程内容
- 主界面可以编辑广播的信息,点击发送广播的按钮发送广播
- 主页面上设置一个按钮进行广播接收器的注册与注销
- 广播接收器若已被注册,发送的广播信息能够及时更新桌面上Widget上文字内容
- 点击Widget可以跳转回主页面
代码实现
静态注册MyBroadcastReceiver,intent-filter中的action标签内容对应广播时的intent中的内容,必须对应才能成功接收到广播
<receiver
android:name=".MyBroadcastReceiver">
<intent-filter>
<!-- <action android:name="@string/sysu"/> -->
<action android:name="SYSU_ANDROID_2015_2"/>
</intent-filter>
</receiver>
注释掉之前使用的动态注册的函数,为按钮SEND设置可见相应,只有逻辑上注册了的按钮才会显示,否则默认不显示按钮SEND
regBroCast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(isRegister){
//unregisterReceiver(myBroadcastReceiver);
regBroCast.setText(getResources().getString(R.string.regBroadcast));
isRegister = false;
send.setVisibility(View.GONE);
} else {
//registerReceiver(myBroadcastReceiver, new IntentFilter());
regBroCast.setText(getResources().getString(R.string.unRegBroadcast));
isRegister = true;
send.setVisibility(View.VISIBLE);
}
}
});
按钮SEND的响应不变,发送一个intent,命名中和静态注册的intent-filter中保持一致,加入message内容发送广播
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Intent intent = new Intent(getResources().getString(R.string.sysu));
Intent intent = new Intent("SYSU_ANDROID_2015_2");
intent.putExtra("message", mainEditText.getText().toString());
sendBroadcast(intent);
Log.d("hint","click send");
}
});
效果图
初始化界面->输入hello world2->点击注册弹出SEND按钮->点击SEND->Widget界面出现hello world2文字

一些总结
- 在string.xml文件中定义的常量给intent发送广播和给MyBroadcastReceiver静态注册时使用,但是MyBroadcastReceiver接收不到广播,只能在代码中写死了静态常量才有效
- 上一个问题找到原因的方法是:Log.d(“hint”, “click send”)找到问题所在
- 有两个app,其中一个发出广播两个都可以接收得到,原因是两个的inter-filter都相同,为不同的app定制intent-filter即可
工程下载
传送门:下载
Android实现AppWidget、Broadcast静态注册的更多相关文章
- Android中的BroadCast静态注册与动态注册
1.静态注册 新建MyBroadcast类继承BroadcastReceiver,实现onReceive方法 /** * Author:JsonLu * DateTime:2015/9/21 16:4 ...
- Android学习笔记--Broadcast, BroadcastReceiver(广播)
参考资料:http://www.cnblogs.com/playing/archive/2011/03/23/1992030.html 在 Android 中使用 Activity, Service, ...
- BroadcastReceiver的两种注册方式之------静态注册
activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...
- Android开发4: Notification编程基础、Broadcast的使用及其静态注册、动态注册方式
前言 啦啦啦~(博主每次开篇都要卖个萌,大家是不是都厌倦了呢~) 本篇博文希望帮助大家掌握 Broadcast 编程基础,实现动态注册 Broadcast 和静态注册 Broadcast 的方式以及学 ...
- Android实现AppWidget、Broadcast动态注册
Android实现AppWidget.Broadcast动态注册 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 主界面可以编辑广播的信息,点 ...
- Android Broadcast Receiver注册
之前有关 Broadcast Receiver的链 动态注册 1.我们新建一个广播接受类,我们创建一个内部类让他继承BroadcastReceiver,并且重新其中当有广播来到时执行的方法onRece ...
- [Android Pro] 有关Broadcast作为内部类时注册的一些问题
很经常Broadcast都会写成一个Activity或者Service的内部类.这时候的注册和普通有点小区别. 有两种情况 1.假如是再Manifest文件里面静态注册的话,需要注意. ex: < ...
- Android 8.0的平台上,应用不能对大部分的广播进行静态注册
引言在Android 8.0的平台上,应用不能对大部分的广播进行静态注册,也就是说,不能在AndroidManifest文件对有些广播进行静态注册,这里必须强调是有些广播,因为有些广播还是能够注册的. ...
- Android(java)学习笔记173:BroadcastReceiver之 静态注册 和 动态注册
1. 广播接受者>什么是广播.收音机.电台:对外发送信号.收音机:接收电台的信号. >在android系统里面,系统有很多重要的事件: 电池电量低,插入充电器,sd卡被移除,有电话打出去, ...
随机推荐
- 获取AX的窗口所有控件的lableID及内容
思路,穷举Forms\TargetFormName 在AOT上面的路径得到TreeNode, 遍历各控件的属性. a1,先读Label属性,没有就读Caption属性及Text属性. a2,若a1取不 ...
- 【Framework】HTTP运行期与页面执行模型
HTTP运行期 HTTP运行期处理客户端应用程序(例如Web浏览器)进入的一个Web请求,通过处理它的应用程序的适当组件路由请求,然后产生响应并发回提出请求的客户端应用程序. 进入的HTTP Web请 ...
- Oracle笔记 一、oracle的安装、sqlplus的使用
1. 首先你得安装Oracle数据库服务器端和客户端软件,在安装过程中要注意的是,选择oracle的安装目录,切记不要用中文目录或的带空格的目录. 下载地址: http://hi.baidu.com/ ...
- Windows server 共享文件夹权限设置
概念:共享权限应用于通过网络连接到共享文件夹的用户.共享权限不会影响本地登录或使用远程桌面登录的用户. 若要为本地登录用户或使用远程桌面登录的用户设置权限,请使用“安全”选项卡而不是“共享权限”选项卡 ...
- 条款22 template method 模式
template method 模式,模板方法模式 其实他和C++模板没有关系. 前者是提供的为派生类设计者提供清晰指示的一种方法,这个事实表示"如何去实现基类所规定的契约" 基类 ...
- JavaScript模块化---AMD规范
JavaSript模块化 在了解AMD,CMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发? 模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问 题进行系 ...
- %SELECTALL
If you ever need to create a view that selects all fields from a particular record, then you should ...
- 怎么利用CSS3绘制三角形
最近三角形挺火,很多地方都能碰到,如网页,微信,或者QQ空间的时间轴等地方都能看到,而且这些并不是图片插入进去的,那就需要用CSS来做了 <p class="bbb"> ...
- Creating an API-Centric Web Application[转]
Creating an API-Centric Web Application 转自 http://hub.tutsplus.com/tutorials/creating-an-api-centric ...
- (转)C#与Java的证书密钥转换
前言 最近由于项目需求,服务端由c#编写,客户端由java编写.通信数据使用RSA非对称加密.但是java和c#生成的密钥格式是不一样的,所以需要转换格式才可以正常使用.网上搜到使用java进行格式转 ...