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

网站建设公司优惠中最近最新在线观看免费高清完整版

网站建设公司优惠中,最近最新在线观看免费高清完整版,网站建设和管理自查报告,网站建设合同需要交印花税onCreate#xff1a;创建活动。此时会把页面布局加载进内存#xff0c;进入了初始状态。onStart#xff1a;开启活动。此时会把活动页面显示在屏幕上#xff0c;进入了就绪状态。onResume#xff1a;恢复活动。此时活动页面进入活跃状态#xff0c;能够与用户正常交互创建活动。此时会把页面布局加载进内存进入了初始状态。onStart开启活动。此时会把活动页面显示在屏幕上进入了就绪状态。onResume恢复活动。此时活动页面进入活跃状态能够与用户正常交互例如允许响应用户的点击动作、允许用户输入文字等。onPause暂停活动。此时活动页面进入暂停状态也就是退回就绪状态无法与用户正常交互。onStop停止活动。此时活动页面将不在屏幕上显示。onDestroy销毁活动。此时回收活动占用的系统资源把页面从内存中清除掉。onRestart重启活动。处于停止状态的活动若想重新开启的话无须经历onCreate的重复创建过程而是走onRestart的重启过程。onNewIntent重用已有的活动实例。上述的生命周期方法涉及复杂的App运行状态更直观的活动状态切换过程如图4-2所示。主页跳转返回如果一个Activity已经启动过并且存在当前应用的Activity任务栈中启动模式为singleTasksingleInstance或singleTop(此时已在任务栈顶端)那么在此启动或回到这个Activity的时候不会创建新的实例也就是不会执行onCreate方法而是执行onNewIntent方法。Activity的启动模式第一个活动跳到第二个活动接着结束第二个活动就能返回第一个活动可是为什么不直接返回桌面呢这要从Android的内核设计说起了系统给每个正在运行的App都分配了活动栈栈里面容纳着已经创建且尚未销毁的活动信息。鉴于栈是一种先进后出、后进先出的数据结构故而后面入栈的活动总是先出栈假设3个活动的入栈顺序为活动A→活动B→活动C则它们的出栈顺序将变为活动C→活动B→活动A可见活动C结束之后会返回活动B而不是返回活动A或者别的地方。假定某个App分配到的活动栈大小为3该App先后打开两个活动此时活动栈的变动情况如图实际上Android允许在创建活动时指定该活动的启动模式通过启动模式控制活动的出入栈行为。App提供了两种办法用于设置活动页面的启动模式其一是修改AndroidManifest.xml在指定的activity节点添加属性android:launchMode表示本活动以哪个启动模式运行。其二是在代码中调用Intent对象的setFlags方法表明后续打开的活动页面采用该启动标志。下面分别予以详细说明。activity android:name.JumpFirstActivity android:launchModestandard /在两个活动之间交替跳转假设活动A有个按钮点击该按钮会跳到活动B同时活动B也有个按钮点击按钮会跳到活动A从首页打开活动A之后就点击按钮在活动A与活动B之间轮流跳转。此时活动页面的跳转流程为首页→活动A→活动B→活动A→活动B→活动A→活动B→……多次跳转之后想回到首页正常的话返回流程是这样的……→活动B→活动A→活动B→活动A→活动B→活动A→首页注意每个箭头都代表按一次返回键对于不允许重复返回的情况可以设置启动标志FLAG_ACTIVITY_CLEAR_TOP即使活动栈里面存在待跳转的活动实例也会重新创建该活动的实例并清除原实例上方的所有实例保证栈中最多只有该活动的唯一实例从而避免了无谓的重复返回。于是活动A内部的跳转代码就改成了下面这般package com.example.myapplication_03;import android.content.Intent; import android.os.Bundle; import android.view.View;import androidx.appcompat.app.AppCompatActivity;public class JumpFirstActivity extends AppCompatActivity implements View.OnClickListener {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_jump_first);findViewById(R.id.btn_jump_second).setOnClickListener(this);}Overridepublic void onClick(View v) {// 创建一个意图对象准备跳到指定的活动页面Intent intent new Intent(this, JumpSecondActivity.class);// 栈中存在待跳转的活动实例时则重新创建该活动的实例并清除原实例上方的所有实例intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);startActivity(intent);} }当然活动B内部的跳转代码也要设置同样的启动标志package com.example.myapplication_03;import android.content.Intent; import android.os.Bundle; import android.view.View;import androidx.appcompat.app.AppCompatActivity;public class JumpSecondActivity extends AppCompatActivity implements View.OnClickListener {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_jump_second);findViewById(R.id.btn_jump_first).setOnClickListener(this);}Overridepublic void onClick(View v) {// 创建一个意图对象准备跳到指定的活动页面Intent intent new Intent(this, JumpFirstActivity.class);// 栈中存在待跳转的活动实例时则重新创建该活动的实例并清除原实例上方的所有实例intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);startActivity(intent);} }这下两个活动的跳转代码都设置了FLAG_ACTIVITY_CLEAR_TOP运行测试App发现多次跳转之后每个活动仅会返回一次而已。登录成功后不再返回登录页面很多App第一次打开都要求用户登录登录成功再进入App首页如果这时按下返回键发现并没有回到上一个登录页面而是直接退出App了对于回不去的登录页面情况可以设置启动标志FLAG_ACTIVITY_CLEAR_TASK该标志会清空当前活动栈里的所有实例。不过全部清空之后意味着当前栈没法用了必须另外找个活动栈才行也就是同时设置启动标志FLAG_ACTIVITY_NEW_TASK该标志用于开辟新任务的活动栈。于是离开登录页面的跳转代码变成下面这样package com.example.myapplication_03;import android.content.Intent; import android.os.Bundle; import android.view.View;import androidx.appcompat.app.AppCompatActivity;public class LoginInputActivity extends AppCompatActivity implements View.OnClickListener {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login_input);findViewById(R.id.btn_jump_success).setOnClickListener(this);}Overridepublic void onClick(View v) {// 创建一个意图对象准备跳到指定的活动页面Intent intent new Intent(this, LoginSuccessActivity.class);// 设置启动标志跳转到新页面时栈中的原有实例都被清空同时开辟新任务的活动栈intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);} }默认启动模式 standard该模式可以被设定不在 manifest 设定时候Activity 的默认模式就是 standard。在该模式下启动的 Activity 会依照启动顺序被依次压入 Task 栈中栈顶复用模式 singleTop在该模式下如果栈顶 Activity 为我们要新建的 Activity目标Activity那么就不会重复创建新的Activity。适合开启渠道多、多应用开启调用的 Activity通过这种设置可以避免已经创建过的 Activity 被重复创建多数通过动态设置使用。栈内复用模式 singleTask与 singleTop 模式相似只不过 singleTop 模式是只是针对栈顶的元素而 singleTask 模式下如果task 栈内存在目标 Activity 实例则将 task 内的对应 Activity 实例之上的所有 Activity 弹出栈并将对应 Activity 置于栈顶获得焦点程序主界面我们肯定不希望主界面被创建多次而且在主界面退出的时候退出整个 App 是最好的效果。耗费系统资源的Activity对于那些及其耗费系统资源的 Activity我们可以考虑将其设为 singleTask模式减少资源耗费。全局唯一模式 singleInstance在该模式下我们会为目标 Activity 创建一个新的 Task 栈将目标 Activity 放入新的 Task并让目标Activity获得焦点。新的 Task 有且只有这一个 Activity 实例如果已经创建过目标 Activity 实例则不会创建新的 Task而是将以前创建过的 Activity 唤醒。看一个示例Activity3 设置为singleInstanceActivity1 和 Activity2 默认standard下图程序流程中黄色的代表 Background 的Task蓝色的代表 Foreground 的Task。返回时会先把 Foreground 的Task 中的 Activity 弹出直到 Task 销毁然后才将 Background的 Task 唤到前台所以最后将Activity3 销毁之后会直接退出应用。3是单独的任务栈动态设置启动模式在上述所有情况都是我们在Manifest中通过 launchMode 属性设置的这个被称为静态设置动态设置是通过 Java 代码设置的。通过 Intent 动态设置 Activity启动模式intent.setFlags();如果同时有动态和静态设置那么动态的优先级更高。FLAG_ACTIVITY_NEW_TASKIntent.FLAG_ACTIVITY_NEW_TASK此 Flag 跟 singleInstance 很相似在给目标 Activity 设立此 Flag 后会根据目标 Activity 的 affinity 进行匹配如果已经存在与其affinity 相同的 task则将目标 Activity 压入此 Task。反之没有的话则新建一个 task新建的 task 的 affinity 值与目标 Activity 相同然后将目标 Activity 压入此栈。但它与 singleInstance 有不同的点两点需要注意的地方新的 Task 没有说只能存放一个目标 Activity只是说决定是否新建一个 Task而 singleInstance模式下新的 Task 只能放置一个目标 Activity。在同一应用下如果 Activity 都是默认的 affinity那么此 Flag 无效而 singleInstance 默认情况也会创建新的 Task。FLAG_ACTIVITY_SINGLE_TOPIntent.FLAG_ACTIVITY_SINGLE_TOP此 Flag 与静态设置中的 singleTop 效果相同FLAG_ACTIVITY_CLEAR_TOPIntent.FLAG_ACTIVITY_CLEAR_TOP当设置此 Flag 时目标 Activity 会检查 Task 中是否存在此实例如果没有则添加压入栈。如果有就将位于 Task 中的对应 Activity 其上的所有 Activity 弹出栈此时有以下两种情况如果同时设置 Flag_ACTIVITY_SINGLE_TOP 则直接使用栈内的对应 Activity。intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_SINGLE_TOP);没有设置则将栈内的对应 Activity 销毁重新创建。按位或运算符运算规则0|00 0|11 1|01 1|11总结参加运算的两个对象只要有一个为1其值为1。例如3|5即 0000 0011| 0000 0101 0000 0111因此3|5的值得7
http://www.hkea.cn/news/14554777/

相关文章:

  • 运营一个网站一年费用h5百度百科
  • 公司做网站怎么推广做网站一个程序员够吗
  • 开办 网站建设费 科目淘宝网站推广工具
  • 长春火车站最新防疫要求潍坊模板建站定制网站
  • 国家电力安全网站两学一做做网站对象存储
  • 沈阳网站建设syfzkj建筑材料价格信息网
  • 网站策划建设阶段的推广做网站免费的域名
  • 外贸建站模版怎样做商城网站
  • 学做包子馒头的网站远程教育网站开发
  • 掉关键词网站深圳品牌医疗网站建设
  • 做网站收费 知乎深圳最好的公司
  • 管理公司网站设计郴州新网最新招聘
  • 网站建设大图百度一下你就知道了
  • 东营网站建设wordpress管理后台
  • 昆山网站优化国际形势最新消息
  • 温州建站方案网站右下角视频代码
  • 自适应网站是什么在银行网站如何做理财风险评测
  • 轻量级网站开发h5制作网站 有哪些
  • 上海网站建设网站优化app企业网站建设后期维护费用
  • 网站建设登录界面代码福田做网站福田网站建设福田建网站500
  • 购买网站域名空间西红门网站建设公司
  • 摄影网站建设任务书r语言做网站
  • 兴平网站开发我现在有域名怎么做网站
  • 网站开发交什么税聊城手机网站建设系统
  • 做app网站的软件有哪些孝感网站开发
  • 重庆孝爱之家网站建设公司创建网站多少钱
  • 接做图网站9 1短视频安装软件
  • 潍坊昌乐县城乡建设局网站室内装修工人培训班
  • 网站 购买商城网站开发平台
  • 个人网站备案名字重要吗动易网站论坛