欢迎来到天天文库
浏览记录
ID:22678259
大小:475.51 KB
页数:27页
时间:2018-10-30
《android底层结构-sdkservice线程知多少》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Android底层结构:SDKService线程知多少l 总是由进程(Process)的主线程(Mainthread)执行SDK-Service(如下图的myService)对象。 l Android底层BinderSystem在binding-time会从该进程的Threadpool里启动一个线程来执行SDK-Service的Binder接口对象(如myBinder)。l 执行myActivity对象的线程与myBinder对象的线程会同步(
2、Synchronize),让myActivity开发者觉得IPC远程呼叫、跨进程的两个线程,就如同单一线程一般。本文就LocalSDK-Service与RemoteSDK-Service两种来说明之。一、如果属于LocalService。 ----则myActivity与myService两者都是由mainthread所执行。亦即,两者是同一线程所执行。此情形下,两个类别里的函数都不宜太费时(例如不宜超过5秒钟);但必要时可诞生子线程去执行费时的函数。//ac01.java(myActivity)p
3、ackagecom.misoo.kx02b;importandroid.app.Activity;importandroid.content.Intent;importandroid.graphics.Color;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.LinearLay
4、out;importandroid.widget.TextView;publicclassac01extendsActivityimplementsOnClickListener{//privatefinalintWC=LinearLayout.LayoutParams.WRAP_CONTENT;privateTextViewtx;privateButtonbtn;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(
5、savedInstanceState);setContentView(R.layout.main);LinearLayoutlayout=newLinearLayout(this);layout.setOrientation(LinearLayout.VERTICAL);LinearLayout.LayoutParamsparam=newLinearLayout.LayoutParams(150,40);param.topMargin=5;tx=newTextView(this);tx.setText
6、Size(16);tx.setTextColor(Color.BLUE);tx.setBackgroundResource(R.drawable.x_yellow);layout.addView(tx,param);btn=newButton(this);btn.setText("Exit");btn.setBackgroundResource(R.drawable.earth);btn.setOnClickListener(this);layout.addView(btn,param);this.s
7、etContentView(layout);//--------------------------------------------------Stringtna=Thread.currentThread().getName();Thread.currentThread().setName(tna+"-myActivity");//--------------------------------------------------myService.setUpdateListener(newUpd
8、ateUIListener());Intentsvc=newIntent(this,myService.class);startService(svc);}@OverrideprotectedvoidonDestroy(){super.onDestroy();{Intentsvc=newIntent(this,myService.class);stopService(svc);}}classUpdateUIListenerimplementsIListe
此文档下载收益归作者所有