当前位置: 首页 > news >正文

还有用asp做网站的吗网站开发蓝云

还有用asp做网站的吗,网站开发蓝云,荥阳做公司网站的公司,网页ui设计培训taskAffinity 和 FLAG_ACTIVITY_NEW_TASK都是和activity启动时是否需要新建一个task有关#xff0c;我们分四种情况看一下这两个标志对启动activity的影响#xff1a;(前提#xff1a;从MainActivity中启动ActivityA) 1)、两个标志都不设置 2)、有FLAG_ACTIVITY_NEW_TASK …taskAffinity 和 FLAG_ACTIVITY_NEW_TASK都是和activity启动时是否需要新建一个task有关我们分四种情况看一下这两个标志对启动activity的影响(前提从MainActivity中启动ActivityA) 1)、两个标志都不设置 2)、有FLAG_ACTIVITY_NEW_TASK   3)、无FLAG_ACTIVITY_NEW_TASK有taskAffinity (不同于MainActivity) 4)、有FLAG_ACTIVITY_NEW_TASK有taskAffinity 注意上面的标志都是针对于启动的ActivityAFLAG_ACTIVITY_NEW_TASK  是在启动ActivityA的Intent中设置的taskAffinity 是在AndroidManifest中ActivityA中设置另外注意这里两个actiity的启动模式都设置为standard 1、先看第一中情况 主要代码 activity android:name.ActivityA android:launchModestandard android:labelstring/title_activityA intent-filter action android:namecom.leaves.ipanel.ActivityA/ category android:nameandroid.intent.category.DEFAULT/ /intent-filter /activity MainActivity启动activitypublic void onClick(View arg0) { // TODO Auto-generated method stub Log.i(TAG, --onClick--task id getCurrentTaskId()); Intent intent new Intent(com.leaves.ipanel.ActivityA); startActivity(intent); } 启动A之后的堆栈ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities) Main stack: TaskRecord{415ebce8 #37 A com.leaves.ipanel U 0} Intent { actandroid.intent.action.MAIN cat[android.intent.category.LAUNCHER] flg0x10000000 cmpcom.leaves.ipanel/.MainActivity } Hist #2: ActivityRecord{42358368 u0 com.leaves.ipanel/.ActivityA} Intent { actcom.leaves.ipanel.ActivityA cmpcom.leaves.ipanel/.ActivityA } ProcessRecord{42384ad8 7591:com.leaves.ipanel/u0a10061} Hist #1: ActivityRecord{4132a3d0 u0 com.leaves.ipanel/.MainActivity} Intent { actandroid.intent.action.MAIN cat[android.intent.category.LAUNCHER] flg0x10000000 cmpcom.leaves.ipanel/.MainActivity } ProcessRecord{42384ad8 7591:com.leaves.ipanel/u0a10061} TaskRecord{41350f60 #2 A com.android.launcher U 0} Intent { actandroid.intent.action.MAIN cat[android.intent.category.HOME] flg0x10000000 cmpcom.android.launcher/com.android.launcher2.Launcher } Hist #0: ActivityRecord{41616790 u0 com.android.launcher/com.android.launcher2.Launcher} Intent { actandroid.intent.action.MAIN cat[android.intent.category.HOME] flg0x10000000 cmpcom.android.launcher/com.android.launcher2.Launcher } ProcessRecord{41615818 628:com.android.launcher/1000} 可见跟启动他的activity同属于一个task. 2、有FLAG_ACTIVITY_NEW_TASK   我们添加FLAG_ACTIVITY_NEW_TASK   public void onClick(View arg0) { // TODO Auto-generated method stub Log.i(TAG, --onClick--task id getCurrentTaskId()); Intent intent new Intent(com.leaves.ipanel.ActivityA); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } 启动A之后的堆栈ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities) Main stack: TaskRecord{415ebce8 #37 A com.leaves.ipanel U 0} Intent { actandroid.intent.action.MAIN cat[android.intent.category.LAUNCHER] flg0x10000000 cmpcom.leaves.ipanel/.MainActivity } Hist #2: ActivityRecord{42358368 u0 com.leaves.ipanel/.ActivityA} Intent { actcom.leaves.ipanel.ActivityA cmpcom.leaves.ipanel/.ActivityA } ProcessRecord{42384ad8 7591:com.leaves.ipanel/u0a10061} Hist #1: ActivityRecord{4132a3d0 u0 com.leaves.ipanel/.MainActivity} Intent { actandroid.intent.action.MAIN cat[android.intent.category.LAUNCHER] flg0x10000000 cmpcom.leaves.ipanel/.MainActivity } ProcessRecord{42384ad8 7591:com.leaves.ipanel/u0a10061} TaskRecord{41350f60 #2 A com.android.launcher U 0} Intent { actandroid.intent.action.MAIN cat[android.intent.category.HOME] flg0x10000000 cmpcom.android.launcher/com.android.launcher2.Launcher } Hist #0: ActivityRecord{41616790 u0 com.android.launcher/com.android.launcher2.Launcher} Intent { actandroid.intent.action.MAIN cat[android.intent.category.HOME] flg0x10000000 cmpcom.android.launcher/com.android.launcher2.Launcher } ProcessRecord{41615818 628:com.android.launcher/1000} 可见跟启动他的activity还是同属于一个task. 3、无FLAG_ACTIVITY_NEW_TASK有taskAffinity (不同于MainActivity) public void onClick(View arg0) { // TODO Auto-generated method stub Log.i(TAG, --onClick--task id getCurrentTaskId()); Intent intent new Intent(com.leaves.ipanel.ActivityA); startActivity(intent); } activity android:name.ActivityA android:launchModestandard android:taskAffinitycom.leaves.test.ActivityA android:labelstring/title_activityA intent-filter action android:namecom.leaves.ipanel.ActivityA/ category android:nameandroid.intent.category.DEFAULT/ /intent-filter /activity 查看一下启动A之后的堆栈ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities) Main stack: TaskRecord{415ebce8 #37 A com.leaves.ipanel U 0} Intent { actandroid.intent.action.MAIN cat[android.intent.category.LAUNCHER] flg0x10000000 cmpcom.leaves.ipanel/.MainActivity } Hist #2: ActivityRecord{42358368 u0 com.leaves.ipanel/.ActivityA} Intent { actcom.leaves.ipanel.ActivityA cmpcom.leaves.ipanel/.ActivityA } ProcessRecord{42384ad8 7591:com.leaves.ipanel/u0a10061} Hist #1: ActivityRecord{4132a3d0 u0 com.leaves.ipanel/.MainActivity} Intent { actandroid.intent.action.MAIN cat[android.intent.category.LAUNCHER] flg0x10000000 cmpcom.leaves.ipanel/.MainActivity } ProcessRecord{42384ad8 7591:com.leaves.ipanel/u0a10061} TaskRecord{41350f60 #2 A com.android.launcher U 0} Intent { actandroid.intent.action.MAIN cat[android.intent.category.HOME] flg0x10000000 cmpcom.android.launcher/com.android.launcher2.Launcher } Hist #0: ActivityRecord{41616790 u0 com.android.launcher/com.android.launcher2.Launcher} Intent { actandroid.intent.action.MAIN cat[android.intent.category.HOME] flg0x10000000 cmpcom.android.launcher/com.android.launcher2.Launcher } ProcessRecord{41615818 628:com.android.launcher/1000} 跟前面两种情况是一样的。 4、有FLAG_ACTIVITY_NEW_TASK有taskAffinity 把FLAG_ACTIVITY_NEW_TASK添加上去 public void onClick(View arg0) { // TODO Auto-generated method stub Log.i(TAG, --onClick--task id getCurrentTaskId()); Intent intent new Intent(com.leaves.ipanel.ActivityA); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } 查看一下启动A之后的堆栈 ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities) Main stack: TaskRecord{4140d4c8 #42 A com.leaves.test.ActivityA U 0} Intent { actcom.leaves.ipanel.ActivityA flg0x10000000 cmpcom.leaves.ipanel/.ActivityA } Hist #2: ActivityRecord{416b48d8 u0 com.leaves.ipanel/.ActivityA} Intent { actcom.leaves.ipanel.ActivityA flg0x10000000 cmpcom.leaves.ipanel/.ActivityA } ProcessRecord{41393ed0 8028:com.leaves.ipanel/u0a10061} TaskRecord{4231cf40 #41 A com.leaves.ipanel U 0} Intent { actandroid.intent.action.MAIN cat[android.intent.category.LAUNCHER] flg0x10000000 cmpcom.leaves.ipanel/.MainActivity } Hist #1: ActivityRecord{413c8430 u0 com.leaves.ipanel/.MainActivity} Intent { actandroid.intent.action.MAIN cat[android.intent.category.LAUNCHER] flg0x10000000 cmpcom.leaves.ipanel/.MainActivity } ProcessRecord{41393ed0 8028:com.leaves.ipanel/u0a10061} TaskRecord{41350f60 #2 A com.android.launcher U 0} Intent { actandroid.intent.action.MAIN cat[android.intent.category.HOME] flg0x10000000 cmpcom.android.launcher/com.android.launcher2.Launcher } Hist #0: ActivityRecord{41616790 u0 com.android.launcher/com.android.launcher2.Launcher} Intent { actandroid.intent.action.MAIN cat[android.intent.category.HOME] flg0x10000000 cmpcom.android.launcher/com.android.launcher2.Launcher } ProcessRecord{41615818 628:com.android.launcher/1000} 可以看到这次终于在一个新的task中启动了ActivityA.上面我们测试的两个Activity是在同一个应用中如果他们在不同的应用中呢例如ActivityA跟MainActivity不在一个apk中其实情况还是一样的只是这个时候如果没有在AndroidManifest.xml中设置taskAffinity则他们两个的taskAffinity是不一样的。因为默认如果没有设置taskAffinity则taskAffinity跟包名是一样的所以如果ActivityA跟MainActivity不在一个apk中当没有FLAG_ACTIVITY_NEW_TASK时则两者应该是在同一个task但是如果有FLAG_ACTIVITY_NEW_TASK则两者应该会在不同的task中。 总结 如果没有设置FLAG_ACTIVITY_NEW_TASK且是从一个activity中启动另一个activity,即sourceRecord不为null,则设置新启动的TaskRecord为即sourceRecord的TaskRecord 如果设置了FLAG_ACTIVITY_NEW_TASK则根据task的 affinity、intent、ComponentName等查找是否有合适的TaskRecord 这些工作的解析还是在ActivityStack.Java的startActivityUncheckedLocked函数中进行的。
http://www.huolong8.cn/news/277930/

相关文章:

  • 做返利网站怎麼建设工程合同通用条款
  • 电商网站平台有哪些大学生对校园网站建设的需求是什么
  • 公司网站建设计划邵阳找工作网站
  • 聚美优品网站怎么做的网络科技有限公司起名
  • 做教育app的网站有哪些最新域名ip地址
  • 南昌网站制作建站模板平台
  • 陕西省高速建设集团网站大型网站建设推荐
  • 微信网站合同网站开发毕设设计论文
  • 帮别人做违法网站会判刑吗网络建站工作室
  • 响应式网站自助建设wordpress升级无法创建目录
  • 电子商务网站建设利益分析网站备案流程详解
  • 上海机械设备有限公司网站建设淮南品牌网站建设电话
  • 兰州网站建设运营方案网站设计制作开发
  • 南昌做网站建设哪家好建设厅官方网站职称
  • 海南网站优化公司关于进行网站建设费用的请示
  • 音乐网站要怎么做重庆市设计院官网
  • 济宁网站建设流程网页设计与制作项目教程素材
  • 上海做网站公司有哪些有什么免费企业网站是做企业黄页的
  • 找素材的网站做网站拉客户有效吗
  • 延安网站制作怎么把wordpress后台设置成中文
  • 如何创建旅游网站论坛门户网站建设
  • wordpress网站百度收录首页株洲企业网站建设工作室
  • 做网站备完备案需要干什么广州工程交易服务中心
  • 金融行业做网站需要什么黄骅市邮政编码
  • 深圳手机集团网站建设案例查询网站
  • 网站的种类网站建设980元
  • 商务网站的功能升级网页
  • 网站开发python和c 哪个好个人网站怎么申请注册
  • 家居东莞网站建设西域数码网站建设
  • 上海网站建设公司招聘开发者软件下载