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

支付建设网站的费用什么科目在百度上做购物网站

支付建设网站的费用什么科目,在百度上做购物网站,微信平台开发,宁波十大广告传媒公司一、jetpack startup Android Jetpack Startup是一个库,它简化了Android应用启动过程,尤其是对于那些需要处理复杂数据绑定和初始化逻辑的应用。它的核心在于提供了一个StartupComponent,用于声明应用的初始化逻辑,这个逻辑会在首…

 一、jetpack startup

Android Jetpack Startup是一个库,它简化了Android应用启动过程,尤其是对于那些需要处理复杂数据绑定和初始化逻辑的应用。它的核心在于提供了一个StartupComponent,用于声明应用的初始化逻辑,这个逻辑会在首次启动时异步运行,而不是直接在ApplicationonCreate()方法中。

在传统的Application中初始化,所有的代码通常会放在onCreate()或相关生命周期方法内,如onCreate(), onRestoreInstanceState(), 或者doSomethingOnCreate()这样的自定义方法中。这种做法可能导致UI阻塞,特别是当初始化操作耗时时,用户体验可能会变差。

Jetpack Startup的优势包括:

  1. 非阻塞:通过异步初始化,减轻了onCreate()的压力,避免了主线程的阻塞,保证了更快的启动速度和更流畅的用户界面。
  2. 模块化:将初始化逻辑分离到单独的组件,使得代码更加清晰,便于维护和测试。
  3. 可复用StartupComponent可以被多个场景复用,比如数据加载、配置设置等。

依赖导入:

dependencies {implementation "androidx.startup:startup-runtime:1.1.1"
}

示例如下:

AsyncInitializer 类

class AsyncInitializer : Initializer<String> {override fun create(context: Context): String {Log.e("TAG", "==AsyncInitializer开始初始化==")CoroutineScope(Dispatchers.Main).launch {// 在IO线程中进行耗时操作val result = withContext(Dispatchers.IO) {// 这里执行你的异步初始化代码val data = loadData()Log.e("TAG", "异步获取到的结果为:$data") // 子线程打印异步获取到的结果}}return "AsyncInitializer"}override fun dependencies(): MutableList<Class<out Initializer<*>>> {return Collections.emptyList(); // 没有依赖,可以随机执行// 假设AsyncInitializer初始化器依赖于LogInitializer初始化器,需要让LogInitializer先执行
//       return mutableListOf(LogInitializer::class.java)}private suspend fun loadData(): String {// 模拟耗时的加载数据操作,比如从网络获取数据delay(3000)return "Loaded Data"}}
LogInitializer类
class LogInitializer : Initializer<LogUtil> {override fun create(context: Context): LogUtil {LogUtil.init(context)return LogUtil.getInstance()}override fun dependencies(): MutableList<Class<out Initializer<*>>> {return Collections.emptyList() // 没有依赖,可以随机执行}
}
LogUtil类
class LogUtil private constructor() {companion object {@Volatileprivate var instance: LogUtil? = nullfun getInstance(): LogUtil {if (instance == null) {synchronized(LogUtil::class.java) {if (instance == null) {instance = LogUtil()}}}return instance!!}fun init(context: Context) {Log.e("TAG", "==init log==")}}
}

AndroidManifest.xml  (写在<application  里面 )

<providerandroid:name="androidx.startup.InitializationProvider"android:authorities="${applicationId}.androidx-startup"android:exported="false"tools:node="merge"><!-- 顺序是随机的 --><meta-dataandroid:name="com.fslihua.initstartup.LogInitializer"android:value="androidx.startup" /><meta-dataandroid:name="com.fslihua.initstartup.AsyncInitializer"android:value="androidx.startup" />
<!--禁用单个库就在meta-data中加入 tools:node="remove"
然后在需要的地方去手动的初始化:
AsyncInitializer.getInstance(this)
.initializeComponent(AsyncInitializer::class.java) --></provider>

代码下载地址:https://download.csdn.net/download/wy313622821/89955633

注意:

1、能放在子线程的初始化,就不要放到主线程

2、如果要依赖异步结果的初始化,A依赖B的异步结果,可以把AB放在同一个Initializer里面

http://www.yayakq.cn/news/706747/

相关文章:

  • 购物网站的搜索框用代码怎么做大连云app官方下载
  • 网站备案是否收费标准购物网站设计意义
  • 怎么做百度网站免费的ppt下载网站哪个好
  • 长沙互联网网站建设外贸建站有哪些公司
  • 建设部门电工证查询网站东营建设信息网的网址
  • 网站信息同步电子商务网站建设方案书的总结
  • 建设快卡额度查询网站怎样才能做网站
  • 宣传型网站功能定位wordpress .net版本
  • 知名网站开发企业wordpress修改数据库密码忘记
  • 惠州seo建站手机免费网站制作
  • 新乡网站设计公司设计师工作室
  • 社区门户网站建设方案网站维护页面源码
  • 网站如何留言官方网站建设 安全还踏实磐石网络
  • 深圳网站建设网页制作wordpress一句话插件
  • c 网站开发教程做网站建设推广好做吗
  • 网站目录做二级域名福州市市政建设开发有限公司网站
  • 案例上海网站做导师一般去什么网站找素材
  • 北京网站建设机构wordpress如何新建页面模板
  • 自己建设网站在哪里建设wordpress 支持手机6
  • 显示官网字样的网站怎么做临淄区建设局网站
  • PHP工具箱和WordPress长沙做信息seo网站
  • 服饰网站建设 e-idea建站系统平台
  • 绵阳市网站建设南宁网站建设哪
  • 需要做网站的行业建设工程有限公司是干什么的
  • 网站建设服务器的选择方案有WordPress搜索按钮代码
  • h5企业模板网站模板云南建设工程信息网站
  • 网站切片怎么做wordpress 5.2中文
  • 各地民营企业创新前行seo服务器
  • 网站项目遇到的问题网站开发服务费会计处理
  • 北京市电力建设公司网站网盘可以做网站空间吗