Android官方文档之Activity和Task(6)

来源:未知 责任编辑:责任编辑 发表时间:2014-02-02 17:44 点击:

要进行这种行为的特定的数据。上面的例子中,联系人列表,特定联系人,电话号码,图列表,特定的图都是数据。
任何一个在主屏上启动Activity的Intent都是明确的Intent。 灵位,一些Activity进入自己Application内部的Activity使用的也是明确Intent。
Intent的详情,参见Intent class和 intent filters.
在Task间切换
下面一系列图展示了用户如何在两个Task间转换。 在这个例子中,用户写了一个文本消息,然后附上一张照片。在做这些事儿的时候,用户看了一眼日历。 然后,用户回来,继续附照片和发送消息。
开始第一个Task。 为了发送一个附加了图片的消息,你需要如下操作:
主屏 > Messaging > NewMessage > MENU > Attach > Pictures 最后一步操作启动了Gallery来取照片。 注意到,Gallery是在另外一个Application中。

在用户取图之前,用户决定去看一眼日历,这就是另一个Task了。 但是当前界面没有一个直达Calendar的按钮,所以用户必须回到主屏去。
开始第二个Task。 用户按HOME键 > 点Calendar来看日历。 Calendar作为一个新的Task被启动。ApplicationLauncher启动的Application都是新的Task。

切换到第一个Task,并完成它。 看完了日历,用户于是按HOME键 > Messging,返回去继续附加图片。 这个操作并没有使用户进入Messaging,而是进入了刚刚离开的Gallery(即使这两个并不是一个Application!)。 然后用户选择一个图片,加入到消息里去,发送消息,完成第一个Task。


  
设计建议
以下是对应用设计者和开发者的建议和指示。
当你写的Activity不希望被重用的时候,不要写IntentFilter。使用准确的Intent来调用它。
当你不想你的Activity被其它Application重用的时候,要确定这个Activity上没有定义任何的IntentFilter。 只能从应用管理器进入,或者只能从同一个Application进入的Activity,应该应用这种做法。 对于这类Activity,使用目标明确的Intent来进入。(而不是通过Intent向系统查询能力这种做法)。 这种情况,也没必要使用IntentFilter。 IntentFilter是发布给所有其它Application的。 所以,如果你用了IntentFilter,你实际上就是在给你的Activity加入了一个外部入口,有可能会造成无意识的安全漏洞。
当你重用其它应用的Activity时,不要忘记处理没有Activity满足要求的情况。
你的Application可以重用其它的Activity,如果这些Activity可以重用的话。 重用的时候,你不能假设你的Intent一定能匹配到一个外部Activity。你必须考虑没有合适Activity的情况。
你可以在真正启动Activity之前测试一下是否有匹配的,也可以直接启动Activity然后处理异常。 两种解决方案见博文Can I use this Intent?。
通过查询PackageManager可以知道一个Intent能否被匹配到一个Activity。 博文提供了一个例子,在isIntentAvailable()方法中。 然后,如果无法匹配,你可以停止构造Intent对象,或者再提示给用户一个地址,例如Market,让他去下载需要的应用。 如此,你的代码在调用startActivity()或者startActivityForResult()的时候,可以保证Intent对象都是经过测试的并可以匹配到合适Activity的。
考虑你的Activity如何才能被其它Application重用。
一个设计者,或者开发者,应该清楚用户可以如何启动你的Application,以及使用Application内的Activity。 用户可以通过主屏,或者其他Application来使用你应用里的Activity。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Android 完全退出程序
  • 原创:Android应用开发-Andorid歌词秀,含源码
  • android 屏幕保护
  • Android手机软件汉化教程---第四课 dex文件汉化
  • 众多Android 开源项目推荐,给力工作给力学习
  • Android Audio代码分析4
  • Android得到已安装的应用程序信息!
  • MIUI:10个亮点及5处不足
  • Android开发者指南(29) —— USB Host and Accessory
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1