Android应用程序组件Activity的"singleTask"(12)

注意,这里我们设置Mainactivity的taskAffinity属性值为"shy.luo.task.main.activity",

成都创新互联是一家集网站建设,沾益企业网站建设,沾益品牌网站建设,网站定制,沾益网站建设报价,网络营销,网络优化,沾益网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

设置 SubActivity的taskAffinity属性值为"shy.luo.task.sub.activity"。

重新编译一下程序,在模拟器上把这 个应用程序再次跑起来,

用“adb shell dumpsys activity”命令再来查看一下系统运行的的任务,就会看到:

 
 
 
  1. [html] view plaincopyRunning activities (most recent first): 
  2.  
  3. TaskRecord{4069c020 #4 A shy.luo.task.sub.activity} 
  4.  
  5. Run #2: HistoryRecord{40725040 shy.luo.task/.SubActivity} 
  6.  
  7. TaskRecord{40695220 #3 A shy.luo.task.main.activity} 
  8.  
  9. Run #1: HistoryRecord{406b26b8 shy.luo.task/.MainActivity} 
  10.  
  11. TaskRecord{40599c90 #2 A com.Android.launcher} 
  12.  
  13. Run #0: HistoryRecord{40646628 com.android.launcher/com.android.launcher2.Launcher} 

这里就可以看到,SubActivity和MainActivity就分别运行在不同的任务中了。

至此,我们总结一下,设置了"singleTask"启动模式的Activity的特点:

1. 设置了"singleTask"启动模式的Activity,它在启动的时候,会先在系统中查找属性值affinity等于它的属性值 taskAffinity的任务存在;如果存在这样的任务,它就会在这个任务中启动,否则就会在新任务中启动。因此,如果我们想要设置 了"singleTask"启动模式的Activity在新的任务中启动,就要为它设置一个独立的taskAffinity属性值。

2. 如果设置了"singleTask"启动模式的Activity不是在新的任务中启动时,它会在已有的任务中查看是否已经存在相应的Activity实 例,如果存在,就会把位于这个Activity实例上面的Activity全部结束掉,即最终这个Activity实例会位于任务的堆栈顶端中。

看来,要解开Activity的"singleTask"之谜,还是要自力更生啊,不过,如果我们仔细阅读官方文档,在http://developer.android.com/guide/topics/manifest/activity-element.html中,有这样的描述:

As shown in the table above, standard is the default mode and is appropriate for most types of activities. SingleTop is also a common and useful launch mode for many types of activities. The other modes — singleTask and singleInstance —are not appropriate for most applications, since they result in an interaction model that is likely to be unfamiliar to users and is very different from most other applications.

Regardless of the launch mode that you choose, make sure to test the usability of the activity during launch and when navigating back to it from other activities and tasks using the BACK key.

这样看,官方文档也没有坑我们呢,它告诫我们:make sure to test the usability of the activity during launch。

网站题目:Android应用程序组件Activity的"singleTask"(12)
分享地址:http://www.hantingmc.com/qtweb/news6/123756.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联