正在进行的和持续的Notification
摘要:通过设置FLAG_INSISTENT和FLAG_ONGOING_EVENT 标志位可以让Notification成为持续或正在进行的Notification。 Notification标记为ONGOING,如下面的代码所示,它就能用于表示当前正在进行的事件(如来电)。正在进行的事件与“普通的”Notification区别在扩展的状态条窗口中。 notification.fl...
阅读全文
posted @
2009-09-09 21:10
xirihanlin
阅读(835)
推荐(0) 编辑
手机闪光
摘要:Notification也包含属性来设置手机LED的颜色和闪烁频率。 ledARGB属性用于设置LED的颜色,而ledOffMS和ledOnMS属性用来设置LED闪烁的频率和样式。你可以设置ledOnMS属性为1,ledOffMS属性为0来让LED始终亮着;或者将两者设置为0来将LED关闭。一旦你设置了LED的设定,你也必须为Notification的flags属性添加FLAG_SHOW_LIGH...
阅读全文
posted @
2009-09-08 22:36
xirihanlin
阅读(1086)
推荐(0) 编辑
手机震动
摘要:你可以使用手机的震动函数来针对Notification来让手机执行特定样式的震动。Android允许你控制震动的样式;你可以使用震动来传达信息以获取用户的注意。 为了设置震动样式,给Notification的vibrate属性设定一个时间数组。构建一个数组,每个间隔的数字相应地代表震动或暂停的时间长度(毫米为单位)。 在你的程序中使用震动之前,你需要给程序授予权限。使用下面的代码片段来为应用程序添...
阅读全文
posted @
2009-09-08 22:12
xirihanlin
阅读(1338)
推荐(0) 编辑
高级Notification技巧
摘要:在接下来的章节,你将学习如何增强Notification功能——通过硬件来提供额外的警示,如让设备响铃、闪光和振动。 上述描述的每个增强功能,你都将看到一个代码片段,你可以将它们添加到Earthquake例子中,在每次检测到地震时,都会给用户提供反馈。 在这里描述的Notification技巧中不包括显示状态条图标,在每次Notification触发后,只是简单直接的取消了...
阅读全文
posted @
2009-09-07 22:23
xirihanlin
阅读(751)
推荐(0) 编辑
给地震监视器添加Notification
摘要:在接下来的例子中,EarthquakeService将为每个新的地震触发一个Notification。显示状态条图标的同时,在扩展的状态窗口中显示地震的级别和位置,选择它将会打开Earthquake Activity。 1. 在EarthquakeService中,创建一个新的Notification实例变量来储存Notification对象,用于控制状态条图标和扩展的状态窗口中项目的细节。 pr...
阅读全文
posted @
2009-08-24 11:01
xirihanlin
阅读(731)
推荐(0) 编辑
创建和触发Notification
摘要:创建Notification 创建和配置新的Notification需要经历三步。 首先,你要创建一个新的Notification对象,传入要在状态条上显示的图标、文字和Notification的当前时间,如下面的代码片段所示: // Choose a drawable to display as the status bar icon int icon = R.drawable.icon; /...
阅读全文
posted @
2009-08-24 09:47
xirihanlin
阅读(2257)
推荐(0) 编辑
Notification介绍
摘要:Notification是一种让你的应用程序在不使用Activity的情况下警示用户。Notification由NotificationManger统一管理,目前包含的能力有:❑ 创建一个状态条图标。❑在扩展的状态条窗口中显示额外的信息(和启动一个Intent)。❑ 闪灯或LED。❑ 电话震动。❑ 发出听得见的警告声(铃声,保存的声音文件)。Notification是看不见的程序组件(Broadc...
阅读全文
posted @
2009-08-21 10:34
xirihanlin
阅读(1404)
推荐(0) 编辑
让我们制作一个Toast吧
摘要:Toast是一种转瞬即逝的对话框,它在淡出之前会显示几秒钟。Toast不需要焦点,而且是非模态的,因此,它们不会中断当前活跃的应用程序。Toast最好的地方是它可以告知用户事件,而不需要强迫用户打开一个Activity或阅读一个Notification。它为运行在后台的Service,在不中断前台应用程序的前提下,告知用户事件提供了理想的机制。Toast类包含一个静态的makeText方法,用来创...
阅读全文
posted @
2009-08-20 10:04
xirihanlin
阅读(1426)
推荐(0) 编辑
使用后台工作者线程
摘要:为了保持应用程序的持续响应性,一个好的习惯是把所有慢的、耗时的操作移出主线程,放到子线程中。所有的Android应用程序组件——包括Activity、Service和Broadcast Receiver,都运行在主线程。因此,任何组件中的耗时操作都将阻塞其它的组件,包括Service和可见的Activity。使用后台线程,对于避免第2章中曾描述的“应用程序无响应...
阅读全文
posted @
2009-08-19 10:04
xirihanlin
阅读(1844)
推荐(0) 编辑
Activity绑定到Service上
摘要:当一个Activity绑定到一个Service上时,它负责维护Service实例的引用,允许你对正在运行的Service进行一些方法调用。Activity能进行绑定得益于Service的接口。为了支持Service的绑定,实现onBind方法如下所示:private final IBinder binder = new MyBinder();@Overridepublic IBinder onBi...
阅读全文
posted @
2009-08-14 10:06
xirihanlin
阅读(4063)
推荐(2) 编辑
地震监视器服务例子
摘要:在这一章,你将修改在第5章创建的地震监视器的例子(在第6、7章增加了一些功能)。在这个例子中,你将将地震更新和处理的功能移到一个独立的Service组件中。在本章的后面,你将为这个Service添加额外的功能,将网络查询和XML解析放到后台线程中。再之后,你将使用Toast和Notification来警告用户有新的地震信息。1. 创建一个扩展了Service类的EarthquakeService类...
阅读全文
posted @
2009-08-13 11:25
xirihanlin
阅读(709)
推荐(0) 编辑
Service的启动、控制和交互
摘要:为了启动一个Service,调用startService;你可以使用动作来隐式启动一个已经注册的Service,或者显式的指定Service启动。如果你的程序没有Service所需的权限,那么,这个调用会抛出一个SecurityException。下面的片段显示了两种启动Service的技巧:// Implicitly start a ServicestartService(new Intent(...
阅读全文
posted @
2009-08-12 11:22
xirihanlin
阅读(913)
推荐(0) 编辑
创建和控制Service
摘要:Service被设计用于在后台运行,所以,它们需要被其它程序组件启动、停止和控制。在接下来的章节,你将学习如何创建一个新的Service,如何使用Intent和startService方法来启动和停止它。之后,你讲学习如何绑定一个Service到Activity上,为交互性提供更加丰富的界面。创建一个Service通过扩展Service基类来定义一个Service。你需要重写onBind和onCr...
阅读全文
posted @
2009-08-12 10:26
xirihanlin
阅读(518)
推荐(0) 编辑
Service介绍
摘要:和有着丰富图形界面的Activity不同,Service是运行在后台——更新Content Provider,发送Intent和触发Notification。它们是执行正常处理和在应用程序的Activity不可见、不活跃或者已经关闭下处理事件的最好方式。由于没有可视化界面,Service都是从其它程序组件中启动、停止和控制,这些组件包括其它的Service、Activity...
阅读全文
posted @
2009-08-12 10:24
xirihanlin
阅读(619)
推荐(0) 编辑
第8章 后台工作
摘要:由于大多数移动设备的屏幕大小限制,在特定的时间上一般只有一个应用程序可见和活跃。这就为那么些运行在后台而不需要UI的程序提供了极好的环境——响应事件、数据轮查或者更新Content Provider。Android提供了Service类来创建特殊的程序组件,它能悄无声息的处理操作和提供功能,而不需要任何UI。与不活跃的Activity相比,Android授予Service更...
阅读全文
posted @
2009-08-11 10:13
xirihanlin
阅读(606)
推荐(0) 编辑
第6章 小结
摘要:在这一章,你学习了如何为应用程序添加保存层。一开始,使用保存和恢复实例状态处理函数来在会话期间保存Activity的实例数据,之后,学习了SharedPreference。你可以使用它在程序的组件间保存实例的值和用户的设置。Android为所有的应用程序提供了完整的SQLite RDBMS。这个小的、高效的和健壮的数据库允许你创建关系型数据库来保存程序数据。使用Content Provider,你...
阅读全文
posted @
2009-08-10 16:41
xirihanlin
阅读(496)
推荐(0) 编辑
创建并使用一个地震Content Provider
摘要:已经创建了一个应用程序,它能够显示最近的地震列表。现在,你有一个极好的机会来和其它应用程序共享这些信息。通过一个Content Provider来暴露这些数据,你或其他人都可以创建基于这些数据的应用程序,而不用加倍网络流量和相关的XML解析。创建Content Provider接下来的例子显示了如何创建一个地震Content Provider。每一个quake都将储存在一个SQLite数据库。1....
阅读全文
posted @
2009-08-10 16:11
xirihanlin
阅读(1349)
推荐(0) 编辑
创建一个新的Content Provider
摘要:通过扩展ContentProvider类来创建一个新的Content Provider。重写onCreate方法来打开或初始化你要通过这个Provider提供的底层数据源。新的Content Provider的框架代码如下所示:import android.content.*;import android.database.Cursor;import android.net.Uri;import ...
阅读全文
posted @
2009-08-10 14:04
xirihanlin
阅读(2765)
推荐(0) 编辑
Android本地的Content Provider
摘要:Android暴露了许多Content Provider来访问本地的数据库。你可以使用之前描述的技巧来使用本地的Content Provider。可变通的地方,android.provider类包含了一些便利的类来简化这些有用的Provider,包括:❑ Browser使用Browser Content Provider可以用来读取或修改标签、浏览历史或者网络搜索。❑ CallLog查看或更新电话...
阅读全文
posted @
2009-08-10 10:23
xirihanlin
阅读(4726)
推荐(0) 编辑
在Content Provider中访问文件
摘要:Content Provider代表的文件是完全符合URI的,而不是raw文件数据。为了插入一个文件到Content Provider或者访问一个保存了的文件,使用ContentResolver的openOutputStream或openInputStream方法。储存文件的过程如下面的代码片段所示:// Insert a new row into your provider, returning...
阅读全文
posted @
2009-08-07 17:11
xirihanlin
阅读(1032)
推荐(0) 编辑