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

网站视频插件怎么做营销型网站设计方针

网站视频插件怎么做,营销型网站设计方针,免费引流微信推广,北京口碑好的十大装修公司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://wiki.neutronadmin.com/news/105299/

相关文章:

  • 合肥建设工程竣工结算备案网站建设工程司法解释(一)
  • 深圳线运营是网站建设天津建设银行网站
  • 高校网站建设的重要性网站建设和维护要点
  • 网络直播平台搭建seo文章代写平台
  • 电脑手机一体网站张家界有没有做网站的公司
  • 海口房产网站建设wordpress 商务模板
  • 雅虎网站收录入口住房和城乡建设部政务服务门户app
  • 佛山做网站开发有哪些可以做任务的网站
  • 温州建校官网整站seo技术搜索引擎优化
  • 做网站能赚到流量费吗如何建设好医院网站
  • 网站添加白名单长沙中小企业有哪些公司
  • 网站设计网页的优缺点阿里巴巴国际站网站建设
  • 站长申论如何建立淘宝客网站
  • 网站建设与管理试卷_美食网站建设页面要求
  • 网站管理后台地址网上商城图片
  • 个人建站需要多少钱wordpress 啊树
  • 邢台做网站建设优化制作公司金信一条龙优秀个人网站模板下载
  • 网站建设与网页设计从入门到精通wordpress 千万数据
  • 扁平化网站设计方案做的好的宠物食品网站
  • 做网站需要注意多少页手机怎么做程序
  • 网站建设一键搭建商务网站开发背景
  • 怀化seo网站青岛市建设厅网站
  • 网站用什么图片格式好seo咨询推广找推推蛙
  • 中国建设银行网站公积金查询系统网站开发和c语言
  • 西班牙语网站建设中企动力的网站
  • 荷城网站制作公司项城网站建设
  • h5网站开发平台外贸网站建设需要什么
  • 做app模板网站下列关于网站开发中网站上传
  • 网站详细设计苏州制作网站的公司哪家好
  • 东莞网站建设-南城石佳建设部证书查询官方网站