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

服务器iis添加网站网页制作与网站建设题

服务器iis添加网站,网页制作与网站建设题,如何成立一个房产网站,wordpress默认小工具总结4个关键概念 1、MessageQueue#xff1a;是一种数据结构#xff0c;见名知义#xff0c;就是一个消息队列#xff0c;存放消息的地方。每一个线程最多只可以拥有一个MessageQueue数据结构。 创建一个线程的时候#xff0c;并不会自动创建其MessageQueue。通常使用一个… 总结4个关键概念  1、MessageQueue是一种数据结构见名知义就是一个消息队列存放消息的地方。每一个线程最多只可以拥有一个MessageQueue数据结构。 创建一个线程的时候并不会自动创建其MessageQueue。通常使用一个Looper对象对该线程的MessageQueue进行管理。主线程创建时会创建一 个默认的Looper对象而Looper对象的创建将自动创建一个Message Queue。其他非主线程不会自动创建Looper要需要的时候通过调 用prepare函数来实现。 2、Message消息对象Message Queue中的存放的对象。一个Message Queue中包含多个Message。 Message实例对象的取得通常使用Message类里的静态方法obtain(),该方法有多个重载版本可供选择它的创建并不一定是直接创建一个新的实例 而是先从Message Pool(消息池)中看有没有可用的Message实例存在则直接取出返回这个实例。如果Message Pool中没有可用的Message实例 则才用给定的参数创建一个Message对象。调用removeMessages()时将Message从Message Queue中删除同时放入到Message Pool中。除了上面这 种方式也可以通过Handler对象的obtainMessage()获取一个Message实例。 3、Looper 是MessageQueue的管理者。每一个MessageQueue都不能脱离Looper而存在Looper对象的创建是通过prepare函数来实现的。同时每一个Looper对象 和一个线程关联。通过调用Looper.myLooper()可以获得当前线程的Looper对象 创建一个Looper对象时会同时创建一个MessageQueue对象。除了主线程有默认的Looper其他线程默认是没有MessageQueue对象的所以不能 接受Message。如需要接受自己定义一个Looper对象(通过prepare函数),这样该线程就有了自己的Looper对象和MessageQueue数据结构了。 Looper从MessageQueue中取出Message然后交由Handler的handleMessage进行处理。处理完成后调用Message.recycle()将其放入Message Pool中。4、Handler 消息的处理者handler负责将需要传递的信息封装成Message通过调用handler对象的obtainMessage()来实现 将消息传递给MessageQueue这是通过handler对象的sendMessage()来实现的。当Looper对象看到MessageQueue中含有Message就将其广播出去。该handler对象收到该消息后调用相应的handler对象的handleMessage()方法 对其进行处理。二、线程之间的消息如何进行传递 1、主线程给自己发送Message  public class MainActivity extends Activity {            private Button btnTest;            private TextView textView;            private Handler handler;            Override            public void onCreate(Bundle savedInstanceState) {                    super.onCreate(savedInstanceState);                    setContentView(R.layout.main);                    btnTest (Button)this.findViewById(R.id.btn_01);                    textView (TextView)this.findViewById(R.id.view_01);                    btnTest.setOnClickListener(new View.OnClickListener() {                            Override                            public void onClick(View arg0) {                                    Looper looper Looper.getMainLooper(); //主线程的Looper对象                                    //这里以主线程的Looper对象创建了handler                                    //所以这个handler发送的Message会被传递给主线程的MessageQueue。                                    handler new MyHandler(looper);                                    handler.removeMessages(0);                                    //构建Message对象                                    //第一个参数是自己指定的message代号方便在handler选择性地接收                                    //第二三个参数没有什么意义                                    //第四个参数需要封装的对象                                    Message msg handler.obtainMessage(1,1,1,主线程发消息了);                                    handler.sendMessage(msg); //发送消息                            }                    });            }            class MyHandler extends Handler{                    public MyHandler(Looper looper){                            super(looper);                    }                    public void handleMessage(Message msg){                            super.handleMessage(msg);                            textView.setText(我是主线程的Handler收到了消息(String)msg.obj);                    }            }    }     2、其他线程给主线程发送Message   public class MainActivity extends Activity {            private Button btnTest;            private TextView textView;            private Handler handler;            Override            public void onCreate(Bundle savedInstanceState) {                    super.onCreate(savedInstanceState);                    setContentView(R.layout.main);                    btnTest (Button)this.findViewById(R.id.btn_01);                    textView (TextView)this.findViewById(R.id.view_01);                    btnTest.setOnClickListener(new View.OnClickListener() {                            Override                            public void onClick(View arg0) {                                    //可以看出这里启动了一个线程来操作消息的封装和发送的工作                                    //这样原来主线程的发送就变成了其他线程的发送简单吧呵呵                                    new MyThread().start();                                    }                    });            }            class MyHandler extends Handler{                    public MyHandler(Looper looper){                            super(looper);                    }                    public void handleMessage(Message msg){                            super.handleMessage(msg);                            textView.setText(我是主线程的Handler收到了消息(String)msg.obj);                    }            }            //加了一个线程类            class MyThread extends Thread{                    public void run(){                            Looper looper Looper.getMainLooper(); //主线程的Looper对象                            //这里以主线程的Looper对象创建了handler                            //所以这个handler发送的Message会被传递给主线程的MessageQueue。                            handler new MyHandler(looper);                            //构建Message对象                            //第一个参数是自己指定的message代号方便在handler选择性地接收                            //第二三个参数没有什么意义                            //第四个参数需要封装的对象                            Message msg handler.obtainMessage(1,1,1,其他线程发消息了);                            handler.sendMessage(msg); //发送消息                                            }            }    }    3、主线程给其他线程发送Message   public class MainActivity extends Activity {            private Button btnTest;            private TextView textView;            private Handler handler;            Override            public void onCreate(Bundle savedInstanceState) {                    super.onCreate(savedInstanceState);                    setContentView(R.layout.main);                    btnTest (Button)this.findViewById(R.id.btn_01);                    textView (TextView)this.findViewById(R.id.view_01);                    //启动线程                    new MyThread().start();                            btnTest.setOnClickListener(new View.OnClickListener() {                            Override                            public void onClick(View arg0) {                                    //这里handler的实例化在线程中                                    //线程启动的时候就已经实例化了                                    Message msg handler.obtainMessage(1,1,1,主线程发送的消息);                                    handler.sendMessage(msg);                            }                    });            }            class MyHandler extends Handler{                    public MyHandler(Looper looper){                            super(looper);                    }                    public void handleMessage(Message msg){                            super.handleMessage(msg);                            textView.setText(我是主线程的Handler收到了消息(String)msg.obj);                    }            }            class MyThread extends Thread{                    public void run(){                            Looper.prepare(); //创建该线程的Looper对象用于接收消息                            //注意了这里的handler是定义在主线程中的哦呵呵                            //前面看到直接使用了handler对象是不是在找在什么地方实例化的呢                            //现在看到了吧呵呵开始的时候实例化不了因为该线程的Looper对象                            //还不存在呢。现在可以实例化了                            //这里Looper.myLooper()获得的就是该线程的Looper对象了                            handler new ThreadHandler(Looper.myLooper());                            //这个方法有疑惑吗                            //其实就是一个循环循环从MessageQueue中取消息。                            //不经常去看看你怎么知道你有新消息呢                            Looper.loop();                     }                    //定义线程类中的消息处理类                    class ThreadHandler extends Handler{                            public ThreadHandler(Looper looper){                                    super(looper);                            }                            public void handleMessage(Message msg){                                    //这里对该线程中的MessageQueue中的Message进行处理                                    //这里我们再返回给主线程一个消息                                    handler new MyHandler(Looper.getMainLooper());                                    Message msg2 handler.obtainMessage(1,1,1,子线程收到:(String)msg.obj);                                    handler.sendMessage(msg2);                            }                    }            }    } 4、其他线程给自己发送Message    public class MainActivity extends Activity {            private Button btnTest;            private TextView textView;            private Handler handler;            Override            public void onCreate(Bundle savedInstanceState) {                    super.onCreate(savedInstanceState);                    setContentView(R.layout.main);                    btnTest (Button)this.findViewById(R.id.btn_01);                    textView (TextView)this.findViewById(R.id.view_01);                    btnTest.setOnClickListener(new View.OnClickListener() {                            Override                            public void onClick(View arg0) {                                    //启动线程                                    new MyThread().start();                                    }                    });            }            class MyHandler extends Handler{                    public MyHandler(Looper looper){                            super(looper);                    }                    public void handleMessage(Message msg){                            super.handleMessage(msg);                            textView.setText((String)msg.obj);                    }            }                    class MyThread extends Thread{                    public void run(){                            Looper.prepare(); //创建该线程的Looper对象                            //这里Looper.myLooper()获得的就是该线程的Looper对象了                            handler new ThreadHandler(Looper.myLooper());                            Message msg handler.obtainMessage(1,1,1,我自己);                            handler.sendMessage(msg);                            Looper.loop();                     }                    //定义线程类中的消息处理类                    class ThreadHandler extends Handler{                            public ThreadHandler(Looper looper){                                    super(looper);                            }                            public void handleMessage(Message msg){                                    //这里对该线程中的MessageQueue中的Message进行处理                                    //这里我们再返回给主线程一个消息                                    //加入判断看看是不是该线程自己发的信息                                    if(msg.what 1 msg.obj.equals(我自己)){                                            handler new MyHandler(Looper.getMainLooper());                                            Message msg2 handler.obtainMessage(1,1,1,禀告主线程:我收到了自己发给自己的Message);                                            handler.sendMessage(msg2);                                                                    }                            }                    }            }    }    附注 上面四个例子的布局文件是同一个文件main.xml  ?xml:namespace prefix o ns urn:schemas-microsoft-com:office:office / ?xml version1.0 encodingutf-8?    LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android            android:rientationvertical            android:layout_widthfill_parent            android:layout_heightfill_parent                TextView    android:idid/view_01            android:layout_widthfill_parent             android:layout_heightwrap_content             android:textstring/hello            /    Button android:idid/btn_01             android:layout_widthfill_parent             android:layout_heightwrap_content             android:text测试消息 /    /LinearLayout 转载于:https://blog.51cto.com/haiyuanxi/957206
http://www.zqtcl.cn/news/410832/

相关文章:

  • 单位建设网站装修公司需要什么资质
  • 做做做网站做网站赚外快
  • 网站备案后应该做什么网站流量监测
  • 开发网站用什么语言做名片的网站叫什么来着
  • 织梦做网站好不好iis中的网站启动不了
  • 临汾住房与城乡建设厅网站迎访问中国建设银行网站_
  • 织梦做的网站首页幻灯片怎么不能显示北大青鸟网站建设课程
  • 做淘客的网站有哪些延安市住建建设网站
  • 南京林业大学实验与建设网站现在都用什么软件搜索附近的人
  • 建站系统wordpress下载亚马逊雨林十大恐怖生物
  • 凡科网做网站怎么样专业团队电影
  • 有什么有趣的网站移动网站排名怎么做
  • 深圳网站建设专家wordpress 4.5下载地址
  • 网站建设公司公司我我提供一个平台wordpress如何去版权信息
  • seo怎么给网站做外链受欢迎的网站建设教程
  • 网站建设使用多语言河南电商网站设计
  • 网站搭建有免费的吗网站地图生成代码
  • 建设公司网站要注意什么投资小利润高的小生意
  • 网站建设需要做哪些工作做胃镜需那好天津津门网站A
  • 做网站申请域名的流程辽宁省工程造价网
  • 网站系统维护一般多长时间金华高端网站设计
  • 做网站公司销售开场白企业网站规划与开发
  • 兰州新区建站不锈钢网站建设
  • 淘宝小网站怎么做的电商网站有哪些
  • 哪些网站可以做画赚钱wordpress go跳转页
  • 怎么做新网站上线通稿深圳罗湖区网站建设公司
  • php 企业网站做网站可以赚钱吗
  • 局域网视频网站建设点播系统长沙3合1网站建设价格
  • 静态网站 服务器合肥做个网站什么价格
  • 宁阳网站设计家电网站设计方案