WEB开发网
开发学院手机开发Android 开发 Android 设计思想 阅读

Android 设计思想

 2010-06-17 03:29:00 来源:WEB开发网   
核心提示:IntentReceiver的生命周期很短 xing:子线程没结束它就结束了,就无法回调句柄了),Android 设计思想(10),如果在接受一个意向广播(Intent broadcast),的时候会产生潜在的耗时操作,这可以允许你整洁、无缝地将你的应用于其他应用集成,并且作为这种好处的回报,你需要为此启动一个服务,顺
IntentReceiver的生命周期很短 xing:子线程没结束它就结束了,就无法回调句柄了)。如果在接受一个意向广播(Intent broadcast)。的时候会产生潜在的耗时操作,你需要为此启动一个服务。顺便提醒一下,你也应该避免在意向接受器(Intent Reciever)中开始一个活动,因为这样会产生一个新的界面,夺取了正在运行的程序的焦点。如果你想在响应意向广播(Intent broadcast)。的时候向客户显示一些东西,那么就用通知管理器吧。

进一步提高响应性

一般情况下,100到200毫秒是程序响应时间的阀值,超过了这个阀值使用者就会感到程序有延迟。因此,除了你需要避免产生ANR之外,还有几条建议能够使你的程序对用户的响应性更好。

如果你的程序在后台处理用户的输入,给出一个你正在工作的提示(ProgressBar(进度条)和ProgressDialog(进度对话框)是很好的选择)

如果是游戏,把计算步骤放在子线程中

如果你的程序在开始的时候要进行一系列的初始化活动,最好显示一个闪现窗体(splash screen)或者尽可能的先快速渲染主界面,然后再通过异步的方式填充里面的内容。无论用哪种方法,你都要标示出目前正在执行哪些过程,以免用户以为程序已经卡死了。

无缝

即便你的应用速度快并且响应及时,它还可能会惹恼用户。一个一般的例子就是在响应一些时间时弹出UI的背景进程(比如Android Service或者IntentReceiver)。这开起来好像无害,程序员通常认为他们花了大量的实际测试和使用自己的应用,感觉还不错。然而,Android应用模型是明确地为用户在不同进程中任意切换而构造的。这意味着,当你的背景进程弹出UI时,用户可能正在系统其他部分中,做着其他的事情——比如接电话。设想一下如果SMS服务每次收到一个消息时都弹出对话框,马上就会惹恼用户。这就是为什么Android标准对这种事件使用 Notification;这样就可以让用户来控制。

这只是一个例子,还有很多例子。例如,如果Activities没有在onPause()或其他方法中正确实现,就会经常导致数据丢失。或者,如果你的应用要把数据暴露给其他应用使用,你应该通过ContentProvider,而不是直接使用全局刻度的原始文件或者数据库。

这写例子的共同之处在于,它们都涉及与系统和其他应用的友好协作。Android系统涉及为将应用看作松散耦合的组件联盟,而不是一堆黑箱代码。这允许作为开发者的你把整个系统看作是更大的组件联盟。这可以允许你整洁、无缝地将你的应用于其他应用集成,并且作为这种好处的回报,你可以自己设计代码。

上一页  5 6 7 8 9 10 11 12 13 14 15  下一页

Tags:Android 设计思想

编辑录入:coldstar [复制链接] [打 印]
赞助商链接