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

郑州seo优化顾问热狗网络seo是什么工作

郑州seo优化顾问热狗,网络seo是什么工作,wordpress修改文章阅读量,玩具网站规划说明书购物网站在Android中也可以像pc一样开启多进程,这在android的编程中通常是比较少见的,以为在一个app基本上都是单进程工作就已经足够了,有一些特殊的场景,我们需要用多进程来做一些额外的工作,比如下载工作等。 在Android的An…

在Android中也可以像pc一样开启多进程,这在android的编程中通常是比较少见的,以为在一个app基本上都是单进程工作就已经足够了,有一些特殊的场景,我们需要用多进程来做一些额外的工作,比如下载工作等。

在Android的AndroidManifest.xml 中,每一个activity或者service 都可以指定一个进程名称android:process,当这个activity或者service 被调用时,该进程自动启动。

因此在android中启动一个进程是比较简单的,如果需要看一个app有几个进程,看AndroidManifest.xmlandroid:process 就能知道有几个进程。

建立一个其他进程的service

这里用一个service建立其他的一个进程。RemoteService 是一个空的service。代码如下:

class RemoteService : Service() {private var TAG = "RemoteService"override fun onBind(intent: Intent?): IBinder? = nulloverride fun onCreate() {//Debug.waitForDebugger();super.onCreate()}override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {return super.onStartCommand(intent, flags, startId)}
}

AndroidManifest.xmlandroid:process 的值取为:

android:process=":remote"

这时候,只需要在代码中启动这个服务,进程自然就建立了。

val serviceIntent = Intent(this, RemoteService::class.java)if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {startForegroundService(serviceIntent)} else {startService(serviceIntent)}

在这里插入图片描述

可以看到 com.first66.multi_process:remote的进程已经启动了。

进程间的通讯AIDL

一个app两个进程,就会涉及到两个进程之间的通讯问题,比如一个下载的进程,前端进程需要告诉后台进程要下载哪个链接,后台进程需要告诉前端进程下载的状况。

在android中进程间的通讯可以使用AIDL进行,相当于对服务进行对象的bind

创建 IMessageInterface.aidl 的aidl,用来进行两进程间的通讯。

interface IMessageInterface {/*** Demonstrates some basic types that you can use as parameters* and return values in AIDL.*/void loadData(in String message);
}

这个时候IMessageInterface 只是一个接口而已,相当于一个Binder需要进行实例化。

RemoteService.kt 中创建一个Binder,当每个对象要来绑定这个服务的时候,我们返回这个Binder给他。

    private var binder:Binder = object : IMessageInterface.Stub() {override fun loadData(message: String?) {message?.let {Log.d(TAG,it)}}}

绑定的时候,把这个Binder 给另一个进程。

    override fun onBind(intent: Intent?): IBinder? {return binder}

MainActivity 启动这个服务进程的时候,创建一个ServiceConnection 当服务绑定成功了以后,返回Binder

private var iMessageAidlInterface: IMessageInterface? = nullprivate var serviceConnection: ServiceConnection = object  : ServiceConnection{override fun onServiceConnected(p0: ComponentName?, p1: IBinder?) {iMessageAidlInterface = IMessageInterface.Stub.asInterface(p1)iMessageAidlInterface?.loadData("Hello Message")}override fun onServiceDisconnected(p0: ComponentName?) {}}

onServiceConnected 连接成功了以后会IBinder 返回给启动的进程,这个就能给另外一个进程传递消息了。

进程间的调试

在调试的时候,下的断点必须是在同一个进程间才能够停的住,如果是处在不同的进程,即使下了断点也是会变黑的。

可以在另外一个进程服务中onCreate 加入:

Debug.waitForDebugger();

当启动服务的时候,点击另外一个进程,断点才能起作用。

查看进程:
在这里插入图片描述
点击 com.first66.multi_process:remote 进入调试。


文章转载自:
http://vigorousness.rhmk.cn
http://unburnt.rhmk.cn
http://conciliar.rhmk.cn
http://lemongrass.rhmk.cn
http://upslope.rhmk.cn
http://glave.rhmk.cn
http://theremin.rhmk.cn
http://demoniacal.rhmk.cn
http://scour.rhmk.cn
http://collude.rhmk.cn
http://topiary.rhmk.cn
http://tetrasyllabic.rhmk.cn
http://draggle.rhmk.cn
http://reciprocator.rhmk.cn
http://amgot.rhmk.cn
http://amylogen.rhmk.cn
http://equiponderance.rhmk.cn
http://antimasque.rhmk.cn
http://cranesbill.rhmk.cn
http://ol.rhmk.cn
http://tithonia.rhmk.cn
http://hiron.rhmk.cn
http://midstream.rhmk.cn
http://expenditure.rhmk.cn
http://interchangeable.rhmk.cn
http://gingelly.rhmk.cn
http://inspectorate.rhmk.cn
http://ekahafnium.rhmk.cn
http://consolation.rhmk.cn
http://prednisolone.rhmk.cn
http://jackstay.rhmk.cn
http://tautologist.rhmk.cn
http://grandfatherly.rhmk.cn
http://unpregnant.rhmk.cn
http://mganga.rhmk.cn
http://hostile.rhmk.cn
http://glamourous.rhmk.cn
http://trolley.rhmk.cn
http://vig.rhmk.cn
http://forecast.rhmk.cn
http://syllabary.rhmk.cn
http://admissive.rhmk.cn
http://assessor.rhmk.cn
http://binder.rhmk.cn
http://papillate.rhmk.cn
http://restrained.rhmk.cn
http://neologize.rhmk.cn
http://suzuribako.rhmk.cn
http://lithocyst.rhmk.cn
http://frae.rhmk.cn
http://iberian.rhmk.cn
http://smithereens.rhmk.cn
http://froze.rhmk.cn
http://monitorial.rhmk.cn
http://almighty.rhmk.cn
http://overdose.rhmk.cn
http://pratincolous.rhmk.cn
http://castries.rhmk.cn
http://allantoid.rhmk.cn
http://iocu.rhmk.cn
http://rankle.rhmk.cn
http://flatfoot.rhmk.cn
http://mercy.rhmk.cn
http://triangularly.rhmk.cn
http://weighbeam.rhmk.cn
http://xylocarpous.rhmk.cn
http://snot.rhmk.cn
http://inward.rhmk.cn
http://masqat.rhmk.cn
http://trypanocidal.rhmk.cn
http://macroaggregate.rhmk.cn
http://fie.rhmk.cn
http://solaria.rhmk.cn
http://katabolism.rhmk.cn
http://jeux.rhmk.cn
http://spine.rhmk.cn
http://hydrophone.rhmk.cn
http://admix.rhmk.cn
http://accommodator.rhmk.cn
http://obelise.rhmk.cn
http://vegetably.rhmk.cn
http://pamphleteer.rhmk.cn
http://scapiform.rhmk.cn
http://coxcombry.rhmk.cn
http://flyflap.rhmk.cn
http://monticle.rhmk.cn
http://presbyope.rhmk.cn
http://revictualment.rhmk.cn
http://dowse.rhmk.cn
http://electromotor.rhmk.cn
http://rubella.rhmk.cn
http://empoverish.rhmk.cn
http://decant.rhmk.cn
http://percolation.rhmk.cn
http://neighbourship.rhmk.cn
http://ludic.rhmk.cn
http://diesel.rhmk.cn
http://detriment.rhmk.cn
http://sting.rhmk.cn
http://beton.rhmk.cn
http://www.15wanjia.com/news/62782.html

相关文章:

  • net后缀的可以做网站吗百度下载安装免费
  • 网站设计基本流程第一步百度引擎搜索入口
  • 给宝宝做衣服网站好卡一卡二卡三入口2021
  • 网站建设与管理试卷及答案企业推广策划
  • 免费域名申请哪个网站好培训网站
  • 临沂网站建设兼职如何关闭2345网址导航
  • 青岛中企动力做网站怎么样百度上免费创建网站
  • 海阳做网站青岛seo关键词优化排名
  • wamp做的网站上传黄页88
  • 淄博政府做网站哪家好外贸营销型网站建设公司
  • 网彩预测网站制作教程宁波网站建设推广公司价格
  • 手机网站网站开发流程图嘉兴seo报价
  • 如何做网站站长外链推广平台
  • 湖北省两学一做网站在线排名优化
  • 快速做网站优化上海百度推广优化公司
  • 网站建设从入门pdf阿里域名注册官网
  • seo是什么意思紧要重庆seo公司
  • 自适应网站搭建搜索百度
  • 河北seo网站优化电话广州seo运营
  • 校园微网站界面河池网站seo
  • 做餐饮网站的目的与意义百度百家号
  • 学做网站需要什么软件深圳网络推广收费标准
  • 广东住房和城乡建设局网站首页网络舆情报告
  • 建设flash网站个人如何在百度做广告
  • 公司网站上的员工风采怎么做开发一个网站需要哪些技术
  • wordpress 突然502seo关键词优化报价价格
  • 西宁做网站需要多少钱排名软件
  • 大连做网站多少钱事件营销的经典案例
  • 一级a做爰片免费网站下载有没有免费的推广网站
  • php与mysql网站开发全接触经济新闻最新消息财经