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

兰州网站搜索引擎优化wordpress给所有用户发邮件

兰州网站搜索引擎优化,wordpress给所有用户发邮件,深圳室内设计网,数据库策略网站推广的有效方法有组件描述Activity(活动)在应用中的一个Activity可以用来表示一个界面#xff0c;意思可以理解为“活动”#xff0c;即一个活动开始#xff0c;代表 Activity组件启动#xff0c;活动结束#xff0c;代表一个Activity的生命周期结束。一个Android应用必须通过Activity来运…组件描述Activity(活动)在应用中的一个Activity可以用来表示一个界面意思可以理解为“活动”即一个活动开始代表 Activity组件启动活动结束代表一个Activity的生命周期结束。一个Android应用必须通过Activity来运行和启动Activity的生命周期交给系统统一管理。Service(服务)Service它可以在后台执行长时间运行操作而没有用户界面的应用组件不依赖任何用户界面例如后台播放音乐后台下载文件等。Broadcast Receiver(广播接收器)一个用于接收广播信息并做出对应处理的组件。比如我们常见的系统广播通知时区改变、电量低、用户改变了语言选项等。Content Provider(内容提供者)作为应用程序之间唯一的共享数据的途径Content Provider主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的接口。Android内置的许多数据都是使用Content Provider形式供开发者调用的如视频音频图片通讯录等 1.activity的切换 !---声明实现应用部分可视化界面的 Activity必须使用 AndroidManifest 中的 activity 元素表示所有 Activity。系统不会识别和运行任何未进行声明的Activity。-----activity android:labelstring/app_name android:namecom.zj.wuaipojie.ui.MainActivity android:exportedtrue !--当前Activity是否可以被另一个Application的组件启动true允许被启动false不允许被启动--!---指明这个activity可以以什么样的意图(intent)启动---intent-filter !--表示activity作为一个什么动作启动android.intent.action.MAIN表示作为主activity启动---action android:nameandroid.intent.action.MAIN / !--这是action元素的额外类别信息android.intent.category.LAUNCHER表示这个activity为当前应用程序优先级最高的Activity--category android:nameandroid.intent.category.LAUNCHER / /intent-filter /activity activity android:namecom.zj.wuaipojie.ui.ChallengeFirst /activity android:namecom.zj.wuaipojie.ui.ChallengeFifth android:exportedtrue / activity android:namecom.zj.wuaipojie.ui.ChallengeFourth android:exportedtrue / activity android:namecom.zj.wuaipojie.ui.ChallengeThird android:exportedfalse / activity android:namecom.zj.wuaipojie.ui.ChallengeSecond android:exportedfalse / activity android:namecom.zj.wuaipojie.ui.AdActivity / 启动广告流程 启动Activity-广告Activity-主页Activity 修改方法 1.修改加载时间 2.Acitivity切换定位修改Intent的Activity类名 switch (position) { case 0: Intent intent new Intent(); intent.setClass(it.getContext(), ChallengeFirst.class); it.getContext().startActivity(intent); return; case 1: Intent intent2 new Intent(); intent2.setClass(it.getContext(), ChallengeSecond.class); it.getContext().startActivity(intent2); return; case 2: Intent intent3 new Intent(); //new一个Intentintent3.setClass(it.getContext(), AdActivity.class); //传入要切换的Acitivity的类名it.getContext().startActivity(intent3); //启动对应的Activityreturn; case 3: Intent intent4 new Intent(); intent4.setClass(it.getContext(), ChallengeFourth.class); it.getContext().startActivity(intent4); return; default: return; }2.Activity生命周期 函数名称描述onCreate()一个Activity启动后第一个被调用的函数常用来在此方法中进行Activity的一些初始化操作。例如创建View绑定数据注册监听加载参数等。onStart()当Activity显示在屏幕上时此方法被调用但此时还无法进行与用户的交互操作。onResume()这个方法在onStart()之后调用也就是在Activity准备好与用户进行交互的时候调用此时的Activity一定位于Activity栈顶处于运行状态。onPause()这个方法是在系统准备去启动或者恢复另外一个Activity的时候调用通常在这个方法中执行一些释放资源的方法以及保存一些关键数据。onStop()这个方法是在Activity完全不可见的时候调用的。onDestroy()这个方法在Activity销毁之前调用之后Activity的状态为销毁状态。onRestart()当Activity从停止stop状态恢进入start状态时调用状态。 3.弹窗定位堆栈分析 修改方法 1.修改xml中的versiocode 2.Hook弹窗(推荐算法助手开启弹窗定位) 3.修改dex弹窗代码 4.抓包修改响应体(也可以路由器拦截) 4.布局优化 1.开发者助手抓布局 2.MT管理器xml搜索定位 3.修改xml代码 android:visibilitygoneActivity生命周期 一、如何创建Activity活动 1.Activity活动 2.新建一个类继承自Activity活动 二、Activity活动的声明周期从创建到销毁的过程所要执行的方法 1.创建Activity活动所要执行的方法 a.onCreate() 这个方法你已经看到过很多次了每个活动中我们都重写了这个方法它会在活动 第一次被创建的时候调用。你应该在这个方法中完成活动的初始化操作比如说加载布 局、绑定事件等。 b.onStart() 这个方法在活动由不可见变为可见的时候调用。 c.onResume() 这个方法在活动准备好和用户进行交互的时候调用。此时的活动一定位于返回栈的 栈顶并且处于运行状态。 2.Activity活动被销毁时所执行的方法 a.onPause() 这个方法在系统准备去启动或者恢复另一个活动的时候调用。我们通常会在这个方 法中将一些消耗 CPU 的资源释放掉以及保存一些关键数据但这个方法的执行速度 一定要快不然会影响到新的栈顶活动的使用。 b.onStop() 这个方法在活动完全不可见的时候调用。它和 onPause()方法的主要区别在于如 果启动的新活动是一个对话框式的活动那么 onPause()方法会得到执行而 onStop() 方法并不会执行。 c.onDestroy() 这个方法在活动被销毁之前调用之后活动的状态将变为销毁状态。 3.onRestart() 这个方法在活动由停止状态变为运行状态之前调用也就是活动被重新启动了。 三、生命周期的分类 完整生存期 活动在 onCreate()方法和 onDestroy()方法之间所经历的就是完整生存期。一般情 况下一个活动会在 onCreate()方法中完成各种初始化操作而在 onDestroy()方法中完 成释放内存的操作。可见生存期 活动在 onStart()方法和 onStop()方法之间所经历的就是可见生存期。在可见生存 期内活动对于用户总是可见的即便有可能无法和用户进行交互。我们可以通过这两 个方法合理地管理那些对用户可见的资源。比如在 onStart()方法中对资源进行加载 而在 onStop()方法中对资源进行释放 从而保证处于停止状态的活动不会占用过多内存。前台生存期 活动在 onResume()方法和 onPause()方法之间所经历的就是前台生存期。在前台 生存期内活动总是处于运行状态的此时的活动是可以和用户进行相互的我们平时 看到和接触最多的也这个状态下的活动。  四.活动的注册 Activity的四种启动方式 一、Activity活动的管理模式 Android采用Task来管理多个Activity。当启动一个APP时,Android就会为之创建一个Task然后每启动一个activity则把当前的activity压到栈顶。比如以此启动页面A-B-C栈里面的结构如下所示 C------栈顶 B A------栈底 按返回键的时候从栈顶弹出页面依次为C-B-A 二、Activity活动的四种启动模式 1.standard模式 它是活动默认的启动模式在不进行显示制定的情况下所有活动都会自动使用这种启动模式。每次通过此模式来启动activity时Android总会为目标activity启动一个新的实例。 举个例子activity A为standard模式activity B为standard模式activity C为standard模式从A-B-C依次启动activity C为栈顶 B A为栈底 按返回键的时候从栈顶弹出页面依次为C-B-A 2.singleTop模式 I.比如Activity B启动模式为singleTopActivity A为standard此时从A页面跳转B页面A-B时会先在栈中查看栈顶是否存在B存在的话则复用栈顶B调用onNewIntent方法而不是重新new一个新的B。如果栈中不存在B则会创建B。 II.再继续从B页面跳转B页面的时候及A-B-B时因为栈顶已经存在B了则直接复用栈顶的B调用onNewIntent方法此时栈如下所示 B------栈顶 A------栈底 补充 onNewIntent() 是 Android 开发中的一个方法当一个活动Activity已经在前台运行时接收到一个新的意图Intent时该方法会被调用。通常情况下这种情况发生在活动使用 FLAG_ACTIVITY_SINGLE_TOP 标志启动多次时。 这里是 onNewIntent() 方法的基本解释 当一个活动已经在前台运行时如果收到一个新的意图Android 不会重新创建这个活动而是调用 onNewIntent() 方法并将新的意图传递给活动。您可以在您的活动中重写 onNewIntent() 方法根据需要处理新的意图。这使您可以根据新的意图更新活动的状态或执行任何必要的操作。 以下是一个示例展示了如何在您的 Android 活动中使用 onNewIntent() 方法 javaCopy code Override protected void onNewIntent(Intent intent) {super.onNewIntent(intent);// 在这里处理新的意图String action intent.getAction();if (action ! null action.equals(my_custom_action)) {// 根据自定义动作执行某些操作} } 在这个示例中如果活动接收到一个具有自定义动作 my_custom_action 的新意图它会相应地执行一些特定的操作。 3.singleTask模式 singleTask 是 Android 活动Activity的启动模式之一在清单文件AndroidManifest.xml中通过 android:launchModesingleTask 进行设置。当一个活动以 singleTask 模式启动时系统会检查当前的任务栈中是否已经存在该活动的实例。如果存在系统会将该任务栈移动到栈顶并调用该活动的 onNewIntent() 方法传递新的 Intent如果不存在系统会创建一个新的任务栈并在其顶部放置该活动的实例。 使用这种加载模式的activity在同一个Task内只有一个实例当系统采用此singleTask模式启动activity时可以分为三种情况 a. 如果将要启动的activity不存在系统将会创建目标activity实例并将它加入到Task栈顶。 b.如果将要启动的activity已经位于Task栈顶此时与singleTop模式的行为相同。 c. 如果将要启动的activity已经存在但没有位于Task栈顶系统将会把位于该activity上面的所有activity移出Task栈从而使得目标activity转入栈顶。 模式的特点包括 单一实例在一个任务栈中只会存在一个该活动的实例。如果该活动已经存在于任务栈中系统不会创建新的实例而是调用已存在的实例。任务栈位置无论从何处启动该活动它都会成为任务栈的根活动Root Activity并且该任务栈中的其他活动会被销毁。onNewIntent() 的调用当活动已经存在且收到新的 Intent 时系统会调用该活动的 onNewIntent() 方法来处理新的 Intent。适用场景适用于需要确保只有一个实例存在且可以接收全局 Intent 的情况例如应用的主界面或者特定的处理程序。 要使用 singleTask 模式只需在清单文件中声明活动时添加 android:launchModesingleTask 属性即可。 xmlCopy code activityandroid:name.YourActivityandroid:launchModesingleTask... /activity 需要注意的是使用 singleTask 模式需要慎重考虑因为它可能会导致应用的行为与用户预期不符。特别是在多任务栈的情况下可能会产生意想不到的结果。因此建议在了解其工作原理并明确适用场景后再使用该启动模式。 4.singleInstance模式 假设我们的程序中有一个活动是允许其他程序调用的如果我们想实现其他程序和我们的程序可以共享这个活动的实例应该如何实现呢 使用前面三种启动模式肯定是做不到的因为每个应用程序都会有自己的返回栈同一个活动在不同的返回栈中入栈时必然是创建了新的实例。而使用singleInstance 模式就可以解决这个问题在这种模式下会有一个单独的返回栈来管理这个活动不管是哪个应用程序来访问这个活动都共用的同一个返回栈也就解决了共享活动实例的问题。 此加载模式下无论从哪个Task中启动目标activity只会创建一个目标activity实例并会使用一个全新的Task栈来装载该activity实例。当系统采用singleInstance模式启动activity时 可以分为两种情况 a.如果将要启动的activity不存在系统会先创建一个全新的Task、再创建目标activity的实例并将它加入新的Task的栈顶。 b. 如果将要启动的activity已经存在无论它位于哪个应用程序中无论它位于哪个Task中系统将会把该activity所在的Task转到前台从而使用该activity显示出来。 补充 singleInstance 通过在清单文件AndroidManifest.xml中设置 android:launchModesingleInstance 来定义。使用 singleInstance 模式启动的活动会在一个新的任务栈中启动并且这个任务栈中只会包含该活动的一个实例。如果其他活动尝试启动具有 singleInstance 启动模式的活动它们会被放置在不同的任务栈中。 singleInstance 模式的特点 独立任务栈使用 singleInstance 模式启动的活动会在一个新的任务栈中启动该任务栈只包含这个活动的一个实例。唯一实例在整个系统中只有一个该活动的实例存在。如果已经存在一个实例系统会使用现有实例并调用其 onNewIntent() 方法来传递新的 Intent如果不存在系统会创建一个新的任务栈并启动新的活动实例。任务栈位置无论从何处启动该活动它都会成为新任务栈的根活动Root Activity。适用场景适用于需要确保只有一个实例存在且该实例具有独立的任务栈的情况例如应用中的全局服务或需要始终在特定环境中运行的活动。 要使用 singleInstance 模式只需在清单文件中声明活动时添加 android:launchModesingleInstance 属性即可。 xmlCopy code activityandroid:name.YourActivityandroid:launchModesingleInstance... /activitysingleInstance 模式提供了一种强大的机制来管理活动的生命周期和任务栈。 Activity与Activity之间的传值 一、Activity的跳转方式 1.startActivityintent 2.startActivityForResult(intent,code) 二、Activity与Activity之间的数据传递Intent媒介 1.Intent概念 意思是一个Intent是对一个即将进行的操作的抽象Intent的字面意识就是”意图”Android应用程序中的三种其他应用程序基本组件——Activity, Service和Broadcast Receiver都是使用称为intent的消息来”激活”的。 如果是两个相邻activity之间的传值使用Intent传值 3.使用startActivityForResult(intent,code)实现回传值 补充 在Android开发中有多种方法可以在Activity之间传递数据 Intent可以使用Intent来传递数据。您可以将数据放入Intent的extras中然后通过startActivity()启动另一个Activity。在目标Activity中您可以使用getIntent()来获取传递的Intent并使用getExtras()来检索数据。 发送数据 javaCopy code Intent intent new Intent(this, TargetActivity.class); intent.putExtra(key, value); // key为传递数据的标识符value为要传递的数据 startActivity(intent); 接收数据 javaCopy code Intent intent getIntent(); if (intent ! null) {String data intent.getStringExtra(key);// 使用传递的数据 } Bundle类似于Intent您可以在Intent中放入Bundle来传递数据。Bundle是一个键值对集合可以存储各种数据类型。 发送数据 javaCopy code Intent intent new Intent(this, TargetActivity.class); Bundle bundle new Bundle(); bundle.putString(key, value); // key为传递数据的标识符value为要传递的数据 intent.putExtras(bundle); startActivity(intent); 接收数据 javaCopy code Intent intent getIntent(); Bundle bundle intent.getExtras(); if (bundle ! null) {String data bundle.getString(key);// 使用传递的数据 } 静态变量您可以使用静态变量在不同的Activity之间传递数据。这种方法简单直接但需要注意内存泄漏和生命周期管理。 SharedPreferences如果要在多个Activity之间共享数据您可以使用SharedPreferences来保存数据。 数据库如果要存储大量结构化数据并且需要在多个Activity之间共享您可以使用SQLite数据库或其他数据库解决方案。 选择使用哪种方法取决于您的具体需求和应用场景。通常来说对于简单的数据传递Intent或Bundle是最常用的方式。 启动流程图
http://www.pierceye.com/news/27485/

相关文章:

  • 深圳龙华网站开发页面跳转自动更新
  • 速度啊网站海南省
  • 美工模板网站天津建设工程信息网中标
  • 网站维护运营好做吗临汾做网站电话
  • 杭州网站seo公司wordpress门户主题
  • 免费浏览器网站网站建设怎么放到云空间
  • 宁波制作网站企业忻州市建设厅网站首页
  • 球球cdk怎么做网站详细网站设计需求表
  • 宁波网站建站推广深圳网站设计兴田德润官方网站
  • 淘宝 做网站空间 条件开发一套管理系统多少钱
  • 优秀设计网站点评福田专业网站建设公司
  • 个人网站素材图片wordpress签到
  • 单位怎样做网站修改网站dns
  • 网站建设赵玉敏网络市场前景分析
  • qq网站代码seo关键字怎么优化
  • 网站开发技术分享ppt免费网站建设自带后台管理程序
  • 网站没内容太原网站建设加王道下拉
  • 网站关键词优化怎么做的网站广告怎么做
  • 做面料那几个网站php商业网站制作
  • 兰州做网站一咨询兰州做网站公司Wordpress搜索指定页面内容
  • 网站建设工作室07fly网站收录后然后怎么做
  • 关于dw做网站如何建立网站后台程序
  • 公司展示网站模板梧州论坛藤县论坛
  • ftp网站建设小企业网站维护一年多少钱
  • 毕业设计网站建筑网站翻译编辑
  • wordpress清空演示数据网站制作网站优化
  • 建设招聘网站中国常用网站网址
  • 网站活动怎么做软件开发文档的重要性
  • 多人在线网站开发杭州网站制作平台公司
  • 图片交易网站如何建设网站建设费 账务处理