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

网站建设开发报告大学生创新创业项目计划书

网站建设开发报告,大学生创新创业项目计划书,php中网站搜索功能实现,学seo网络推广Task任务栈(ActivityTask) Activity属于App进程,但是Task属于操作系统,Task里面的Activity可以是属于不同的App的,所以App之间是可以相互调用的.比如:App里面可以使用打电话、地图等. 当我们查看手机后台运行的程序,他们其实就是一个个任务栈Task,我们平时可能会把他认为是一个…

Task任务栈(ActivityTask)
Activity属于App进程,但是Task属于操作系统,Task里面的Activity可以是属于不同的App的,所以App之间是可以相互调用的.比如:App里面可以使用打电话、地图等.

当我们查看手机后台运行的程序,他们其实就是一个个任务栈Task,我们平时可能会把他认为是一个个App,其实不然.

我们可以通过adb命令来查看后台运行的任务栈Task,命令如下:
adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p'

执行adb命令后,结果如下:

tangkundeMBP:project tangkun$ adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p'Running activities (most recent first):TaskRecord{a29ed4d #1 A=com.huawei.android.launcher U=0 StackId=0 sz=1}Run #0: ActivityRecord{e1755d4 u0 com.huawei.android.launcher/.unihome.UniHomeLauncher t1}Running activities (most recent first):TaskRecord{b552136 #18 A=com.tencent.mm U=0 StackId=14 sz=1}Run #0: ActivityRecord{34daea u0 com.tencent.mm/.ui.LauncherUI t18}Running activities (most recent first):TaskRecord{921c837 #17 A=com.tangkun.xiangxuestudy U=0 StackId=13 sz=1}Run #0: ActivityRecord{72fdf64 u0 com.tangkun.xiangxuestudy/.TKActivity t17}

Activity启动方式有哪些?

  • 通过Launch启动,也就是点击桌面图标启动Activity (创建)
  • 点击顶部通知启动Activity (创建)
  • 第三方应用启动Activity,通过Scheme启动Activity (创建)
  • 从后台的任务栈启动Activity (恢复)

Activity的生命周期
成对出现的几个:

  • onCreate/onDestory:创建和销毁
  • onStart/onStop:用户是否可见
  • onResume/onPause:用户是否可以操作

onCreate和onStart的区别?

  • 可见与不可见的区别.前者不可见,后者可见
  • 执行次数区别.onCreate方法只会在Activity创建时执行一次,而onStart方法在Activity切换以及按Home键返回桌面再切回应用的过程中会被多次调用.因此,Bundle数据的恢复在onStart中比onCreate中执行更合适.
  • onCreate能做的事onStart其实都能做,但是onStart能做的事onCreate却未必合适做.如前面所说,setContentView和资源初始化两者都能做,然而像动画的初始化放在onStart中做比较好.

onStart和onResume的区别?

  • 是否在前台.onStart方法中Activity可见但是不在前台,不可交互,而onResume方法Activity在前台.
  • 职责不同.onStart方法中主要还是做一些初始化操作,而onResume方法,根据官方建议,可以做开启动画和独占设备的操作

onPause和onStop的区别?

  • 是否可见.onPause时Activity可见,onStop时Activity不可见,但是Activity还在内存中
  • 在系统内存不足的时候可能不会执行onStop方法.因此,程序状态的保存、独占设备和动画的关闭、以及一些数据的保存最好放在onPause中进行,但要注意不能台耗时.

onStop和onDestory的区别?

  • onStop阶段Activity还没被销毁,对象还在内存中,此时可以通过切换再次回到该Activity,而onDestory阶段Activity被销毁掉了.

onNewIntent的生命周期

  • 只对singleTopsingleTasksingleInstance启动模式有效,因为standard每次都是新建一个Activity实例,所以不会执行onNewIntent方法;
  • singleTopsingleTasksingleInstance,这三种启动模式下重复启动同一个Activity时,不会重新创建一个新的Activity实例,调用完当前ActivityonPause方法后,只会调用调用的这个ActivityonNewIntentonResume方法,并且可以在onNewIntent方法中接收传递过来的Intent的数据;
  • 只对startActivity生效,对于从Navigation后台切换回来的恢复无效.

Activity的启动模式

  • standard 每个任务栈Task可以创建多个实例
    • 注意事项:
      1. 当从非Activity的context启动Activity时,比如:在Applocation中启动Activity时,需要带上new_task的flag;
      Intent intent = new Intent(getApplicationContext(), TKActivity.class);
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      getApplicationContext().startActivity(intent);
      
      1. 如果从应用内启动standard的Activity,则他的taskAffinity就是App的build.gradle中的applicationId
  • singleTop 每个任务栈Task的顶部只能创建一个实例
    • 注意事项:
      1. 如果栈顶已经存在要启动的Activity,我们再重复去启动这个Activity的时候,不会走onCreate和onStart生命周期去创建一个新的Activity实例,而只会走当前栈顶Activity的onNewIntent方法和onResume生命周期
      2. 如果栈顶已经存在要启动的Activity,我们在通过设置taskAffinity和FLAG_ACTIVITY_NEW_TASK去重复启动当前Activity时,并不会重新创建一个新的taskAffinity的任务栈,也只会走当前任务栈栈顶的Activity的onNewIntent方法和onResume生命周期方法
    • 使用场景: 适合启动同类型的页面
      1. 接收到通知启动的内容显示页面
      2. 耗时操作返回页面
      3. 登录页面
  • singleTask 在任务栈Task中只能创建一个实例,所以这个Activity上面的所有Activity都需要出栈
    • 注意事项:
      1. 首先检查当前任务栈Task是否存在启动的Activity.如果存在,则会清空启动Activity栈顶部的所有Activity;如果不存在,则会重新创建一个启动Activity的实例.
      2. 如果给这个启动的Activity设置了taskAffinity,当前栈中不存在要启动的Activity,则会重新创建一个任务栈,存放当前启动的Activity.
        注意:这里不给启动的Activity设置Flag值为Intent.FLAG_ACTIVITY_NEW_TASK也会创建一个新的任务栈,也就是说Flag对singleTask没有影响.
    • 使用场景: 适合作为程序的入口
      1. WebView页面
      2. 扫一扫页面
      3. 确认订单页面
      4. 付款页面
  • singleInstance 只能创建一个实例,并且独占一个任务栈Task
    • 注意事项:
      1. 不论当前启动的Activity是否在任务栈中,都会重新创建一个任务栈给到启动的Activity,并且任务栈中只存放当前启动的Activity;如果我们重复启动一个Activity,也会为每一个启动的Activity创建任务栈,保证一个任务栈中只存放一个Activity.
      2. 如果我们没有给重复启动的Activity设置taskAffinity,虽然会创建多个taskAffinity相同的任务栈,名称是我们app的applicationId,但是我们在查看手机后台的程序时,只能看到一个应用程序,也就是说手机后台查看到的任务栈名称都不相同,不会展示相同任务栈名称的任务栈.
    • 使用场景: 适合与程序分离开的页面
      1. 闹铃的响铃页面
      2. 来电页面
      3. 锁屏页
http://www.yayakq.cn/news/971025/

相关文章:

  • 酒泉网站建设优化烟台规划网站
  • 厦门网站设计制作什么是标记型网页制作工具
  • 网站模板侵权问题免费图片链接生成器
  • 网站被黑 百度跳转厦门制作企业网站
  • 抓取网站访客qq空间登录入口
  • 品牌的佛山网站建设如何设计一个app
  • 怎么直接用代码做网站互联网站备案信息查询
  • 网站首页做30个关键词网络营销客户的心里特征
  • vs网站怎么做个人网页可以做什么内容
  • 湖南建设长沙网站建设价格广西建设培训网
  • 广州做网站专业公司企业管理软件erp
  • 上传到网站网站开发课程技术培训
  • 网站 手机网站wordpress怎么做商城网站
  • 网站开发的疑虑便宜网站设计
  • 建设实业公司网站设计模板如何设置友情链接
  • 建设游戏网站需要哪些设备十大接单网站
  • 顺义免费网站建设品牌查询网站 优帮云
  • 山西宏图建设集团有限公司网站坑人网站怎么做
  • php 网站 下载开原网站网站建设
  • 华为手表网站网站建设中国十强
  • 网站的新闻栏与产品栏如何做收费抽奖网站
  • 济南比较好的网站开发公司网站建设工具的种类
  • 青海建设工程信息网站网页生成
  • 潍坊知名网站建设最新报价可信网站图标 费流量
  • 赣州网站维护淄博专业网站建设哪家专业
  • 乡村振兴网站建设网络公司是干什么工作的
  • 勤哲网站开发视频关键词排名优化工具有用吗
  • 备案不关闭网站淄博网站关键词优化
  • 无锡网站建设唯唯网络什么是oa系统
  • 炫酷的动画网站网站制作方案在哪找