Android官方文档之Activity和Task(9)
来源:未知 责任编辑:责任编辑 发表时间:2014-02-02 17:44 点击:次
其它方式也可以用来处理Notification,包括把Activity拉到前台,展示特定的数据(展示刚刚收到新消息的文字消息线程)
一个Notification总是把Activity启动到新的Task。(Intent总是带着FLAG_ACTIVITY_NEW_TASK)。 这是因为,一个对当前任务的打断,不应该属于当前任务。
使用Notification系统 — 不要用Diaolog代替Notification。
如果你的后台Service需要通知用户什么的话,使用标准的Notification系统 — 不要使用Dialog或者Toast来通知。 Dialog或者Toast会立即吸引用户的注意力然后打断用户,把他的注意力从他正在做的事情上吸引开: 用户可能正在输入文字,此时Dialog出现的话,这些文字会被突然应用到Dialog上。 用户习惯于在方便的时候再处理你的消息和通知。
如果不是绝对必要,不要接管BACK键。
用户从一个Activity到另一个Activity的时候,系统会把它们放到Activity栈里去。 这些以一个导航历史的形式被BACK键利用。 大多数的Activity都有有限的目的,有单一系列的数据,例如看一批联系人,写邮件,或者拍照。 但是,如果你的应用只是一个大Activity,其中有一些页,需要细粒度控制BACK键的时候呢? 这样应用的例子,是浏览器和地图。Google浏览器有一系列的web页,Google地图有一系列的图层可以切换。 这两个应用都接管了BACK键,有内部的返回栈。
例如,Map使用了层在地图上来展示不同的信息给用户:展示地址搜索的结果,展示朋友的地址,展示两点之间的路线等。 Map自己储存了层的栈,所以BACK键可以回到上一层。
同样地,Browser使用浏览窗口展示不同的web页。 每个窗口有它们自己的导航历史,类似桌面操作系统中浏览器的Tab,每个Tab都有不同的返回栈。 For example, if you did a Google web search in one window of the Android Browser, clicking on a link in the search results displays a web page in that same window, and then pressing BACK would to the search results page. Pressing BACK goes to a previous window only if the current window was launched from that previous window. If the user keeps pressing back, they will eventually leave the browser activity and return Home.
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>