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

网页设计与网站开发方向有了域名公司网站怎么建设

网页设计与网站开发方向,有了域名公司网站怎么建设,超级折扣2WordPress,静态网页设计实训报告总结1、Handler介绍 在Android开发中#xff0c;我们常会使用单独的线程来完成某些操作#xff0c;比如用一个线程来完成从网络上下的图片#xff0c;然后显示在一个ImageView上#xff0c;在多线程操作时#xff0c;Android中必须保证以下两点#xff1a; #xff08;1我们常会使用单独的线程来完成某些操作比如用一个线程来完成从网络上下的图片然后显示在一个ImageView上在多线程操作时Android中必须保证以下两点 1不要阻塞UI线程 2不要再UI线程之外访问Android UI工具包 有了以上两点的限制我们在程序之间的消息如何进行传递呢 用Handler消息的处理者。 public class MainActivity extends Activity {private TextView tv;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv (TextView) findViewById(R.id.tv);}private Handler handler new Handler() {Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case 100:tv.setText(下载完成);break;}}};public void downloadClick(View view) {//使用线程模拟下载操作new Thread(new Runnable() {Overridepublic void run() {while (true) {try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}break;}handler.sendEmptyMessage(100);}}).start();} }   2、Handler常用API 使用handler可以完成以下两点工作 1消息调度和在将来的某个时间点执行一个Runnable 2多个任务加入到一个队列中执行 Handler相关方法 //发送一个空消息即obj为空标记为100handler.sendEmptyMessage(100);//获取一个消息对象返回一个Msg对象Message msg handler.obtainMessage();msg.what 100;msg.obj 要存的信息;//任意类型handler.sendMessage(msg);//发送消息//在制定时间后发送消息handler.sendEmptyMessageAtTime(200, System.currentTimeMillis() 3000);//延迟2s后发送消息handler.sendEmptyMessageDelayed(300, 2000);   3、Handler内部实现原理 Handler实现机制 1Message对象表示要传递的一个消息 2MessageQueue对象存放消息对象的消息队列先进先出原则 3Looper对象负责管理当前线程的消息队列MessageQueue 4Handler对象负责把消息push到消息队列中以及接收Looper从消息队列中取出的消息   Android启动程序时会在UI线程创建一个MessageQueue。 /*** Handler机制* 1、Message 消息对象内部使用链表数据结构实现一个消息池用于重复利用避免大量创建消息对象造成内存浪费* 2、Handler 消息处理者通过该对象把消息存入消息队列并最后通过HandlerMessage方法处理消息* 3、MessageQueue 消息队列用于存储Message对象的数据结构先进先出* 4、Looper 消息队列的处理者用于循环检查消息队列从消息队列中一个一个的取出消息对象传入HandlerMessage方法*/   4、Handler内存泄露问题分析 内存泄漏当activity退出后handler依然还占用activity的引用导致activity没有真正退出依然占用内存。解决方法如下 /*** Handler的内存泄露问题* 1、定义一个内部类时会默认拥有外部类对象的引用所以建议使用内部类时最好定义为一个静态内部类* 2、引用的强弱强引用-软引用 -弱引用*/public class HandlerMemoryActivity extends Activity {private MyHandler handler;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_handler_memory);//使用Handler延迟执行一个Runnable10分钟handler.postDelayed(new Runnable() {Overridepublic void run() {System.out.println(!!!!!!run);}}, 1000 * 60 * 10);//关闭当前的Activityfinish();}private static class MyHandler extends Handler {WeakReferenceHandlerMemoryActivity weakReference;public MyHandler(HandlerMemoryActivity activity) {weakReference new WeakReferenceHandlerMemoryActivity(activity);}Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);HandlerMemoryActivity activity weakReference.get();if (activity ! null) {//做处理}}} }   5、AsyncTask 除了使用Handler实现线程间的通信外Android提供了一个工具类AsyncTask他使创建需要与用户界面交互的长时间运行的任务变得简单相对来说AsyncTask更清凉已写适用与简单的异步处理不需要借助线程和Handler即可实现。 AsyncTask是抽象类AsyncTask定义了三种泛型类型ParamsProgress和Result Params启动任务执行的输入参数比如Http请求的URL Progress后台任务执行的百分比 Result后台执行任务的最中返回结果比如String AsyncTask的执行步骤 AsyncTask的执行分为四个步骤每一步对应一个回调方法我们需要的就是实现这些方法。 1首先定义一个类继承AsyncTask 2实现AsyncTask中定义的下面一个或几个方法 四个执行步骤分别为 1onPreExecute被UI Thread调用该方法用来做已写准备工作如在界面上显示一个进度条 2doInBackgroundParams..将在onPreExcute之后执行运行在后台的线程中。负责执行耗时操作。可以调用publishProgress方法来更新实时任务进度 3onProgressUpdateProgress..)在publishProgress方法被调用后UI Thread将调用该方法在界面上展示任务的进展情况 4onPostExcuteResult在doInBackground执行完成后onPostExcuteResult方法将被UI Thread调用后台的计算结果将通过该方法传递到UI Thread。 AsyncTask准则 1AsyncTask的实例必须在UI Thread中创建。 2excute方法必须在UI Thread中调用 3不要手动调用onPreExecute、onPostExecute、doInBackground和onProgressUpdate这借个方法 4改Task只能被执行一次否则多次调用时会出现异常 5AsyncTask不能饿完全取代线程在一些逻辑较为复杂或者后台反复执行的逻辑可能就需要线程来实现了 public class MainActivity extends Activity {private TextView tv;private ProgressBar progressBar;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv (TextView) findViewById(R.id.tv);progressBar (ProgressBar) findViewById(R.id.progressBar);}public void downloadClick(View view) {new MyAsyncTask(MainActivity.this).execute(http://a.hiphotos.baidu.com/image/pic/item/d50735fae6cd7b8926b326c20c2442a7d8330e97.jpg);}/*** 通过AsyncTask实现一个异步任务*/private static class MyAsyncTask extends AsyncTaskString, Integer, Integer {private MainActivity activity;public MyAsyncTask(MainActivity activity) {this.activity activity;}//执行任务之前触发的事件可以在该方法中做一些初始化动作例如显示一个dialog//这个是在主线程中Overrideprotected void onPreExecute() {super.onPreExecute();activity.progressBar.setProgress(0);}//在子线程中//执行后台任务的方法Overrideprotected Integer doInBackground(String... params) {String s params[0];try {URL url new URL(s);HttpURLConnection urlConnection (HttpURLConnection) url.openConnection();//获取文件的大小int size urlConnection.getContentLength();//0是一个标记表示需要更新的最大进度值1表示更新当下下载的进度值publishProgress(0, size);byte[] bytes new byte[100];int len -1;FileInputStream in (FileInputStream) urlConnection.getInputStream();FileOutputStream out new FileOutputStream(/sdcard/ System.currentTimeMillis() .jpg);while ((len in.read(bytes)) ! -1) {out.write(bytes, 0, len);//更新进度publishProgress(1, len);out.flush();}out.close();in.close();} catch (Exception e) {e.printStackTrace();}return 200;}//更新进度Overrideprotected void onProgressUpdate(Integer... values) {super.onProgressUpdate(values);switch (values[0]) {case 0:activity.progressBar.setMax(values[1]);break;case 1:activity.progressBar.incrementProgressBy(values[1]);break;}}Overrideprotected void onPostExecute(Integer integer) {super.onPostExecute(integer);if (integer 200) {activity.tv.setText(下载完成);}}} }   转载于:https://www.cnblogs.com/chhom/p/4732041.html
http://www.huolong8.cn/news/42010/

相关文章:

  • 建设网站怎么查明细黑糖 wordpress 主题
  • 站内推广方式有哪些商业空间设计的特点
  • 肯德基网站建设app搭建流程
  • 琼筑网站是哪家做的软件开发工程师证书图片
  • 网站建设绩效考核创意网页设计素材模板
  • 怎么给网站加速网络营销的概念和内涵
  • 公司网站服务器租赁计算机有哪些专业
  • 郑州网站开发公wordpress附件上传
  • 免费制作app的手机软件网站优化的图片
  • wix做的网站深圳计算机速成班培训
  • 网站地图怎么弄搜索网站的浏览器
  • 多语言网站系统曙光建设有限公司网站
  • 深圳营销型网站建设哪家好wordpress建立论坛网站
  • 可以做微网站的第三方平台有哪些公司网站后台如何上传视频
  • 建网站流程 知乎寻找常州微信网站建设
  • 淮南家政网站建设地址北京公司注册流程及需要的材料
  • 图书馆网站建设与评价研究福州网站设计软件公司
  • 个人门户网站备案做外贸网站注意事项
  • 京东商城网站建设教程南通网站建设方案
  • 网站建设属于现代服务吗制作宣传图片的软件app
  • 找别人做网站需要注意什么线上营销方式6种
  • 做信息发布类网站用什么语言做什么网站开发最简单
  • 上海网站建设培训sem和seo有什么区别
  • 做教师知识网站有哪些活动策划流程及细节
  • 联通 网站备案什么网站建设策划方案 论文
  • 做一个网站怎么做的宁波市网站建设
  • 个人网站建设联系电话丹阳seo公司
  • 手机网站开发 c做一款网页游戏需要多少钱
  • 微信公众号app下载安装辽宁网络优化方法
  • 微信登录 网站开发刚做的网站怎么才能搜到我