- 浏览: 119320 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhifeiji512:
George_ghc 写道第一段代码给cursor赋值第二段代 ...
Android中Cursor关闭的问题
1. BroadcastReceiver
BroadcastReceiver用来接收如电量低、信号弱等即时广播通知,发送侧调用Context.sendBroadcast(Intent)或Context.sendOrderedBroadcast(Intent)可发送这类广播通知,而BroadcastReceiver则用onReceive (Context, Intent)方法来处理到接受到的广播通知。一个BroadcastReceiver的生命周期和onReceive()一致,其宿主进程和Activity、Service的一样,因此在onReceive不能有长时间的循环处理,不能显示Dialog的UI。
一个BroadcastReceiver可以在AndroidManifest.xml中静态声明和在程序动态注册,其可处理的通知由在声明或注册时定义的IntentFilter决定。
-
动态注册的例子: 如果在Activity中动态注册,必须在onResume()中注册,在onPause()中取消注册。
private IntentReceiver mDataReceiver = new IntentReceiver() { @Override public void onReceiveIntent(Context context, Intent intent) { Log.d("hogeRecv","onReceiveIntent: "+intent); } } public void onResume() { super.onResume(); String action = "cn.com.chen.TestReceiver"; IntentFilter filter = new IntentFilter(action); this.registerReceiver(mDataReceiver,filter); } public void onPause() { super.onPause(); unregisterReceiver(mDataReceiver); }
-
静态声明同Service和Activity的声明类似。
<application> ... > <receiver name="receiver类名"> <intent-filter> <action name="cn.com.chen.TestReceiver"> </intent-filter> </receiver> </application>
在onReceive()中,不能直接同Activity交互,仅可Toast显示一个简单的通知消息、或通过NotificationManager设置一个Notification。对于Service,可以通过Context.startService()启动,但不能用Context.bindService()来绑定。如果需要同一个已启动的Service异步通信,可以通过BroadcastReceiver.peekService (Context myContext, Intent service)(返回值为IBinder)。
例:
IBinder binder = peekService(ctx, new Intent(ctx, MediaPlaybackService.class)); IMediaPlaybackService sService = IMediaPlaybackService.Stub.asInterface(binder);
Context.sendBroadcast()是一个完全异步处理,该函数调用后,其所能匹配的BroadcastReceiver则同时执行。而Context.sendOrderedBroadcast()则调用一次则能执行一个匹配的BroadcastReceiver,执行顺序只有IntentFilter的android:priority属性决定。
2. NotificationManager
Notification可以有多种形式,比如在StatusBar上的一个icon(通过该Icon可以启动一个Activity等)、LED闪烁、Screen的背景灯闪烁、震动等。用户拖动StatusBar,可以使Notification扩展显示为一个List UI。如果选择一个Nofitication,则触发该Nofitication所关联的PendingIntent所定义的行为。PendingIntent可以包含启动一个Activity、BroadcastReceiver、Service等信息。
int icon = R.drawable.notification_icon; // StatusBar上的图标 CharSequence tickerText = "Hello"; // 启动时,在StatusBar上显示的走马灯 long when = System.currentTimeMillis(); // Notification启动时间 Context CharSequence contentTitle = "My notification"; // (扩展显示时)Notification的标题 CharSequence contentText = "Hello World!"; // (扩展显示时)Notification的消息 Notification notification = new Notification(icon, tickerText, when); Intent notificationIntent = new Intent(this, MyActivity.class); // 后续的PendingIntent用 PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); Context context = getApplicationContext(); notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
此外,还可以通过设置Notification的属性来设置提示音、震动等。
notification.defaults |= Notification.DEFAULT_SOUND; notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3"); notification.defaults |= Notification.DEFAULT_VIBRATE; long[] vibrate = {0,100,200,300}; notification.vibrate = vibrate; notification.defaults |= Notification.DEFAULT_LIGHTS; notification.ledARGB = 0xff00ff00; notification.ledOnMS = 300; notification.ledOffMS = 1000; notification.flags |= Notification.FLAG_SHOW_LIGHTS; NotificationManager用来管理Notification,用Context.getSystemService(String)可从系统中获获取。NotificationManager的方法notify(int id, Notification)可以显示一个Notification到StatusBar上,方法cancel(int id)可删除一个Notification。参数ID用来标识Notification,在一个程序中必须唯一。 String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); Notification notification = ... // Notification设置 mNotificationManager.notify(1, notification);
发表评论
-
repo用法
2012-03-16 14:24 1290repo用法(转载) http://blogold ... -
Git使用指南
2012-03-15 14:43 9251.创建目录 $ git config --glo ... -
关于Android的多种屏幕支持
2011-12-14 14:23 1295首先是几个基本概 ... -
android ListView 修改背景
2011-12-14 09:39 1902修改listview时存在的 ... -
详解android:scaleType属性
2011-11-28 17:09 6399android:scaleType是控制图片如何res ... -
Android使用AIDL设计和调用远程接口
2011-11-24 18:14 4051在Android中, 每个应 ... -
Android开发 系统应用调用,Intent使用总结
2011-11-09 09:48 1381转载来源网上资料。 显示网页: 1. Ur ... -
ListView结合ContextMenu 获取点击项的Position
2011-11-07 17:35 1465ContextMenu称为上下文菜单,一般在控件上长按时 ... -
List of Android MIME types and Uri's
2011-11-07 16:35 1608This is a list of URIs that can ... -
隐藏输入法
2011-11-07 14:16 838在manifest里设置,android:windowSoft ... -
SlidingDrawer 使用
2011-10-28 17:51 4006关于SlidingDrawer控件 1.重要属性 ... -
Notification
2011-10-21 16:49 1586可以给Notification设置缺省的表现形式: ... -
Android获取其他包的Context实例
2011-10-20 11:17 939Android中有Context ... -
Android 中Message,MessageQueue,Looper,Handler详解+实例
2011-10-18 13:23 968一、几个关键概念 ... -
Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化
2011-10-18 13:21 1079转自:http://www.blogjava.ne ... -
免费的Android UI库及组件推荐
2011-10-18 13:10 3007转自:http://www.iteye.com/news/22 ... -
众多Android 开源项目推荐,给力工作给力学习
2011-10-18 11:54 675转自:http://www.cnblogs.com/Terry ... -
下拉刷新
2011-10-18 11:10 814下拉刷新 参考代码 https://gith ... -
canvas.translate(x,y)理解
2011-10-17 15:59 2692translate(float x,float y)函数是将整 ... -
android.view.WindowManager$BadTokenException: Unable to add window
2011-09-28 10:19 1855android.view.WindowManager$B ...
相关推荐
在Android平台上,广播接收器(Broadcast Receiver)是四大组件之一,它是系统用来发送和接收广播消息的关键组件。在"android music broadcast receiver"这个项目中,我们可以看到开发者利用广播接收器来实现音乐...
总之,获取Android通知栏的内容涉及到对Android的通知系统有深入的理解,包括Notification类、BroadcastReceiver以及在不同Android版本下的适配策略。通过以上介绍,你可以开始构建自己的GetNotifiService,实现获取...
当一个BroadcastIntent被发送时,所有匹配该Intent的Receiver都会接收到广播通知,然后执行onReceive()方法。 二、创建BroadcastReceiver 创建BroadcastReceiver通常需要自定义一个类,继承BroadcastReceiver,并...
BroadcastReceiver是Android中实现跨进程通信的一种方式,使得不同应用间可以传递信息,即使它们在后台运行也能接收到广播通知。本教程将引导Android新手一步步实现Broadcast Receiver。 首先,我们需要创建一个新...
本文将详细介绍如何快速集成极光推送到Android项目中,并实现自定义通知,以及如何将通知推送给特定的个人或群体。 一、集成极光推送 1. 注册极光推送账号:首先,你需要在极光推送官网(http://www.jpush.cn/)...
Android应用开发中,对于下载功能的实现,涉及到如何监听下载进度以及如何处理下载完成后的通知。以下将详细介绍如何在Android应用中实现下载进度监听和通知处理。 ### Android下载进度监听 在Android平台上实现...
### 第八章 Android广播事件处理Broadcast Receiver #### 知识点一:理解Broadcast Receiver的作用与意义 在Android应用开发过程中,Broadcast Receiver是一种重要的组件,它主要用于接收来自系统或其他应用程序...
在Android开发中,广播(Broadcast)和BroadcastReceiver是系统服务的重要组成部分,它们允许应用程序之间进行异步通信。本文将深入探讨如何使用Broadcast和BroadcastReceiver来实现广播通知到通知栏的功能。 首先...
在Android开发中,有时我们需要实现一个特定的需求:客户端在安装APK后,通过网络通知服务端这个过程已经完成。这通常涉及到Android系统的广播接收器(BroadcastReceiver)和Socket通信技术。接下来,我们将深入探讨...
<receiver android:name=".DayNightModeReceiver"> <action android:name="android.intent.action.TIME_SET" /> <action android:name="android.intent.action.TIMEZONE_CHANGED" /> </receiver> ``` ...
总之,BroadcastReceiver在Android开发中扮演着重要角色,它是实现跨组件通信的有效手段,尤其适用于实现后台任务和实时通知。通过学习和理解BroadcastReceiver的工作原理和使用方法,开发者可以更高效地构建功能...
通过以上步骤,你将能够创建具备基本功能的Android通知,并能根据用户对通知的交互进行相应处理。实际开发中,还可以根据需求调整通知的其他属性,如颜色、声音、震动等,以提升用户体验。记住,合理地使用通知能够...
Android系统中的广播Broadcast,Receiver例子,可以用LogCat察看整个运行的生命周期.MainActivity界面上有两个按钮,分别是Start Counter和Stop Counter按钮,点击前者开始计数,而点击后者则停止计数。
<receiver android:name=".UpdateDownloadReceiver" /> ``` 最后,记得在合适的时候取消注册BroadcastReceiver,防止内存泄漏。 总结来说,实现“android检测版本更新,通知栏显示下载进度”的功能,需要涉及以下...
同时,如果在`onReceive()`中需要启动服务,建议使用`PendingIntent`或者在`AlarmManager`中安排任务,以符合Android O及以上版本的后台执行策略。 现在,当用户重启设备时,`BootReceiver`会接收到`ACTION_BOOT_...
// 创建通知频道(Android O及以上版本) if (Build.VERSION.SdkInt >= BuildVersionCodes.O) { int importance = NotificationImportance.Default; NotificationChannel channel = new NotificationChannel(...
"Android获取系统拍照程序发出的广播"这个主题涉及到的是如何通过BroadcastReceiver来接收并处理系统相机应用拍照后的广播通知。下面将详细介绍这个过程,以及相关的知识点。 首先,Android系统在相机应用拍摄照片...
在Android系统中,广播是一种非常重要的组件,它用于在应用程序之间传递消息,使得不相关的组件可以在适当的时间接收到系统的事件通知。本篇文章将详细讲解Android中的两种广播机制:显式广播和隐式广播,并通过设置...
5. **通知类别**:改进了通知的分类和优先级管理,使用户能更好地控制和组织来自不同应用的通知。 书中会详细讲解如何在Android Framework层面实现这些新特性,包括API的使用、系统服务的调用以及如何进行系统级别...
9. **通知系统**:Android的通知中心允许应用向用户显示重要的信息,即使用户不在应用中。开发者可以通过Notification API创建和管理通知。 10. **多媒体支持**:Android Framework提供了对音频、视频和图像的广泛...