WEB开发网
开发学院手机开发Android 开发 Android SDK 开发之应用程序基础 阅读

Android SDK 开发之应用程序基础

 2010-03-23 04:53:00 来源:WEB开发网   
核心提示:Starting tasks当需要一个activity作为整个应用程序的进入点时,我们给它一个intent filter,其中action为 "android.intent.action.MAIN",Android SDK 开发之应用程序基础(10),category 为"android.

Starting tasks

当需要一个activity作为整个应用程序的进入点时,我们给它一个intent filter,其中action为 "android.intent.action.MAIN",category 为"android.intent.category.LAUNCHER"。这种filter使得一个图标和一个标签显示在程序启动器中,使用户可以启动该task或者返回到该task。

返回该task这种能力时很重要的:用户需要能够离开一个task并且一段时间后能返回。因此,两种永远启动新的task的启动模式"singleTask"和"singleInstance"应该只在具有MAIN和LAUNCHER的filter的 activity中使用。设想如果没有该filter的话,一个intent启动了一个"singleTask"的activity,启动了一个新的 task,用户在该task中工作了一段时间。用户按下HOME键离开它,该task现在家屏幕后面。由于它不在应用程序启动器中,用户没有办法来返回到它。

FLAG_ACTIVITY_NEW_TASK标签也有一个难题。如果该标签导致一个activity启动一个新的task,然后用户按下 HOME键离开,必须有一种方法使得用户可以回到它。有些程序(例如通知管理器)总是在外部task中启动activity,因此它们总是使用 FLAG_ACTIVITY_NEW_TASK标志。如果你有一个activity可以被外部程序用这个标签启动,注意要让用户有一个方法来返回原来的位置。

当你不想要用户能够返回到前一个activity时,将元素的"finishOnTaskLaunch"设为"true"。

Processes and Threads

However, you can arrange for components to run in other processes, and you can spawn additional threads for any process.

当一个应用程序的第一个component需要运行时,Android为它启动一个包含一个线程的Linux进程。默认情况下,一个应用程序中所有的component都在该进程和线程中运行。

你也可以让component在其他的进程中运行或者在进程中创建其它的线程。

Processes

一个component在进程中运行,该进程是被manifest文件所控制的。component元素 — , , , — 每一个都有一个process属性来指定该component运行的位置。这些属性可以被设置成每个component在各自不同的进程中运行,或者某些 component在同一个进程中运行。它们也可以被设置成不同的应用程序的component在同一个进程中运行 — 只要这些应用程序共用同一个Linux user

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

Tags:Android SDK 开发

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