重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

taskandroid的简单介绍

Android中怎么切换task到前台

如果你的平台是面向Android3.0(API level

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的罗甸网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

11),那么恭喜你,一个函数就可以搞定:

moveTaskToFront

(int,

int)

如果你和我一样苦逼的在用2.2的平台,那么就要稍微麻烦点了,基本上是用taskAffinity +

FLAG_ACTIVITY_NEW_TASK +

FLAG_ACTIVITY_SINGLE_TOP。

先来看一下sdk怎么说的:

1.

taskAffinity:

SDK说,如果用带FLAG_ACTIVITY_NEW_TASK标志来启动一个activity,并且这个activity与当前运行的另一个task(A)的affinity名字相同,那么就这个activity就会在那个task(A)里启动。

Ok,到这还不行,人家没说会把Task_A带到前台,接着看另一个Flag

2.

FLAG_ACTIVITY_NEW_TASK

好了,重点来了:如果Task_A中已经有了Activity_2,这时候如果以FLAG_ACTIVITY_NEW_TASK来start

Activity_2,那么这个Task_A就会被带到前台。

好了,现在Task_A已经可以到前台了,剩下最后一步:Activity_2不能创建两次,这就要求同时使用下面这个flag:

3.

FLAG_ACTIVITY_SINGLE_TOP

如果Activity_2在Task的顶端,那么这个Activity_2就不会被再此创建,而是走onNewIntent.

至此,结合上面3个特性,问题得以解决。结合代码,流程如下:

1. 在androdiManifest.xml中添加Activity_2的taskAffinity

name与Task_A相同(也就是与Activity_1的taskAffinity名字相同),如android:taskAffinity

= "android.task.calendar"。

2.

在Task_B启动前,Activity_1先启动Activity_2并要求返回结果,startActivityForResult().

3.

Task_B中的Activity_4取得所需数据后,保存好(intent,或其他方法),然后startActivity(Activity_2),并带上(FLAG_ACTIVITY_NEW_TASK

| FLAG_ACTIVITY_SINGLE_TOP)标志。

4. Task_A被带到前台,并且调用到Activity_2::onNewIntent().

5.

Activity_2取得之前保存的信息(从Intent或其他地方),调用setResult(),然后finish().

6. Activity_1中的onActivityResult()响应,得到返回结果。

新手请教,android中的task是个什么东东?

task就是一连串的操作组成的一个任务链.比如:从MMS里添加附件进入Camera,再按Camera菜单进入Gallery,再从Gallery设置图片为联系人进入Contacts.......虽然起了很多个Activity,但是通常情况下他们都属于同一个task.每个Activity可以在Manifest中配置自己是否另起一个task,默认是不另起的.

安卓中进程和Task有什么区别?

安卓中进程和Task区别:

首先看到的不是进程(process),是任务(Task)。

用终端,输ps,可以看到真正的运行中的linux process

进程是一个继承自Linux的概念,一般一个app会有一个uid,需要时会独立地开一个p

rocess。有些process是作为app的容器的,其它process是底层linux用到的。同时,虽

然很少见,也会有多个app共享一个process或者uid。

task是一个activity的栈,其中"可能"含有来自多个App的activity,也就是来自多个p

rocess,杀task一般是关闭Task的根activity引出的子树,不一定会连带kill掉对应的


当前名称:taskandroid的简单介绍
链接URL:http://cqcxhl.com/article/dssssgd.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP