Android官方文档之Activity和Task(5)
State 3 - 现在,Map Activity在后台运行了。主屏到了前台。 然后,用户运行Calendar Activity,把Calendar置到前台。现在用户关注Calendar,并浏览今天的日程。(如图中粗线所示)
State 4 - 用户按HOME键,然后点击Map,回到Map Activity,看到地图已经读取完了。
主屏的应用启动器,在两个不同的Task里,启动了ViewMap和DayView两个Activity。 这个时候,系统就是多任务的 — 运行了多个Task。
Launching from Two Entry Points
每个Application必须至少有一个进入点 — 好让系统或者用户进到Application的Activity里。 在主屏的ApplicationLauncher,每一个图标表示了一个进入点。 Application也可以从其他Application进入。 每个Activity都是一个Application的潜在进入点。
Android提供的PhoneApplication有两个进入点:Contact和Dialer。 一个在Contact中的用户可以点选一个电话号码,来进入Dialer。 如下图所示,用户能点击Contact的图标来进入ContactActivity,然后点击一个电话号码,来进入DialerActivity,拨打电话。
一旦用户进入到了Application里,就可以通过tabs、menu items、list items、buttons或者其他界面控制元素, 来进入其它的Activity,例如NewContact或者EditContact之类。
Intent
当用户要对某类数据做出行为时,例如,点击一个mailto:info@example.com链接, 他们实际上是初始化了一个Intent对象(一个Intent)。这个Intent会被解决成为一个特定的Commpnent。 (这里我们只说ActivityComponent)。 (翻译成人话:用户要做一件事情,实际上会初始化出来一个Intent,广播询问系统,然后最终导致一个特定的Activity被调用。) 进而,用户点击mailto:链接的结果,是一个Intent对象。系统会尝试用这个Intent来匹配一个Activity。 如果这个Intent明确地指名了一个Activity(一个明确Intent),系统会立即进入这个Activity来响应用户动作。 然而,如果这个Intent没有指名Activity(一个不明确Intent),系统会比较这个Intent和所有可用的Activity的IntentFilter 。 要是多个Activity都能处理这个动作和数据,系统会让用户选择一个。
下图展示的就是点击mailto:链接的例子。 如果设备上有两个处理Email的应用,当用户点击电邮地址的结果,是出现一个对话框,让用户在两个应用中间选一个。(Gmail和Email两个应用)。
Here are some examples of Intent objects and the activities they resolve to: 这里是一些Intent对象(不明确的)和Intent对应Activity的例子:
看联系人列表 - resolves to a contact list viewer activity
看特定联系人 - resolves to a contact viewer activity
编辑特定联系人 - resolves to a contact editor activity
向一个特定地址发电邮 - resolves to an email activity
拨打电话 - resolves to a phone dialer activity
看图列表 - resolves to an image list viewer activity
看图 - resolves to an image viewer activity
裁剪图片 - resolves to an image cropper activity
注意,Intent对象指定了两件事:行为和数据:
一个需要进行的行为。上面的例子中,看、编辑、拨号、裁剪都是行为。
相关新闻>>
- 发表评论
-
- 最新评论 更多>>