`
liangoogle
  • 浏览: 278448 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

handler 使用 重写 handleMessage 消息队列

阅读更多

 

    protected void onStop() {

        // TODO Auto-generated method stub

        super.onStop();

        handerHandler.removeMessages(0);//如果不在这里把消息从列队里删除,则在后台里继续发消息。

    }

 

    private TextView textView1;

 

    public static int add;

 

    private Handler handerHandler = new Handler() {

 

        /*

         * (non-Javadoc)

         * @see android.os.Handler#handleMessage(android.os.Message)

         */

        @Override

        public void handleMessage(Message msg) {

            switch (msg.what) {

                case 0:

//                    textView1.setText("add");

                    textView1.setText(""+add+"");//不这么写,像上面那么写会出错,程序运行时强制关闭。

                   ++add;

                   removeMessages(0);

                   sendEmptyMessageDelayed(0, 5000);

                    Log.e("I AM HANDLER", "I AM TEST>>>>>>>>>>>>>>>>>>>>>>>O");

                    break;

                case 1:

 

                    break;

                case 3:

 

                    break;

                case 4:

 

                    break;

            }

            super.handleMessage(msg);

        }

    };

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        init();

        handerHandler.sendEmptyMessage(0);//这里发送了一个空的消息0到MessageQueue,也可以用下面2种的方法。

 

//        Message msg = new Message();

//        msg.what=0;

//        handerHandler.sendMessage(msg);

 

        //这用方法比上面那种Message的获取方法节省内部空间

//        Message msg=handerHandler.obtainMessage();

//        msg.arg1=0;

//        handerHandler.sendMessage(msg);

 

 

    }


分享到:
评论

相关推荐

    android自定义消息队列

    3. **自定义Handler**:创建一个继承自Handler的类,重写`handleMessage(Message msg)`方法来处理接收到的消息。 4. **Looper的使用**:在主线程中设置Looper,使Handler能接收到消息。 5. **线程管理**:创建工作...

    安卓的消息队列机制

    `Handler`实例通过重写`handleMessage()`方法来处理从消息队列中取出的消息。 #### 结论 安卓的消息队列机制通过`MessageQueue`、`Looper`和`Handler`三个关键类构建了一套灵活高效的异步通信框架。开发者可以利用...

    Android_Handler的线程队列Demo

    - 创建Handler时,需要重写`handleMessage(Message msg)`方法,该方法会在接收消息的线程中被调用。 - 通过`sendMessage(Message msg)`或`sendMessageDelayed(Message msg, long delayMillis)`将消息放入消息队列...

    Android_子线程创建消息队列更新UI

    3. 使用Handler实例发送消息或Runnable对象到消息队列。可以使用`sendMessage()`或`post()`方法,其中`msg`参数通常包含了要传递的数据。 4. 调用`Looper.loop()`开始消息循环。这个循环会不断检查消息队列,一旦有...

    安卓handler的使用

    创建Handler时通常需要重写`handleMessage(Message msg)`方法,这是处理消息的核心代码: ```java Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // 处理接收到的消息...

    模拟Android Handler机制Demo

    Handler可以重写handleMessage()方法,定义处理Message时的具体行为。 2. **创建Message**:在非主线程中,创建Message对象,并设置其what、arg1、arg2等属性,或者使用Bundle添加额外的数据。 3. **发送Message**:...

    android handler 机制 源码

    Handler的`handleMessage(Message msg)`方法是处理消息的地方,开发者可以重写此方法来执行特定的操作。 `Looper`类是每个线程中的消息循环,负责从消息队列中取出Message并分发给对应的Handler。在Android系统中,...

    Android Handler消息处理顺序分析

    3. 处理消息:Looper从消息队列中取出Message,交给对应的Handler的`handleMessage()`方法进行处理。 消息处理的顺序主要取决于两个因素:Message的发送时间和Message的优先级。在Android中,Message对象有一个`...

    handler的简单示例

    1. 创建Handler子类:继承自Handler并重写handleMessage()方法。这个方法会在主线程中被调用,用于处理接收到的消息。 2. 实现handleMessage():在这里编写更新UI或其他业务逻辑的代码。 3. 在其他线程中发送消息:...

    handler简单使用

    使用Handler的`sendEmptyMessage()`、`sendMessage()`或`post()`方法向消息队列中发送消息。这些方法会创建一个Message对象,并将其放入队列。例如: ```java Message msg = new Message(); msg.what = 1; // ...

    xamarin学习笔记A13(安卓Handler异步消息处理)

    3. 在Handler中重写handleMessage方法,处理发送过来的消息。 ```csharp public class MyHandler : Handler { public override void handleMessage(Message msg) { switch (msg.what) { case 1: string data = ...

    Handler的介绍和使用方法

    一旦消息进入队列,`Looper`就会将其取出并交给`Handler`处理,从而触发对应的消息回调函数`handleMessage()`。 以下是一个简单的`Handler`使用示例: ```java public class MainActivity extends ...

    handler的使用

    单纯使用Handler的post方法不会开启新的线程,而是将Runnable添加到当前线程的消息队列,因此并非实现多线程的最佳实践。 5. **补充:Looper与MessageQueue**: Looper是消息循环器,它会不断从MessageQueue中取出...

    handler全面分析

    通常,我们通过创建Handler的子类并重写`handleMessage(Message msg)`方法来处理接收到的消息。Handler对象通常与主线程(UI线程)关联,因此它可以安全地更新UI。 接下来,我们要提到的是Looper。Looper是消息队列...

    android中的handler的使用方法

    创建Handler通常需要重写`handleMessage(Message msg)`方法,这里会定义处理消息的逻辑。有两种创建方式: - 直接构造Handler,关联到当前线程的Looper。 - 通过`Looper.prepare()`和`Looper.loop()`创建一个新的...

    Android开发工程师面试题之handler详解。android程序员,android开发面试资料,详解

    - **创建Handler**:通过继承Handler类并重写`handleMessage(Message msg)`方法来定义消息处理逻辑。 - **发送消息**:通过调用Handler的`sendMessage(Message msg)`或`post(Runnable r)`等方法向消息队列发送消息...

    Android_Handler详解(一)

    - **创建Handler对象**:首先在需要处理消息的线程(通常是主线程)中创建一个Handler实例,重写handleMessage()方法,这个方法会在接收到消息后被调用,用于执行相应的操作。 ```java class MyActivity extends ...

    handler消息机制详细教程

    - **MessageQueue**:存放所有通过Handler发送的消息的队列。消息在此等待被处理。 - **Looper**:每个线程中的MessageQueue的管理者。调用`Looper.loop()`方法后,会进入一个无限循环,不断从MessageQueue中取出待...

    Android 之 Looper、MessageQueue、Handler 与消息循环

    每个Handler实例都与一个特定的线程及其消息队列关联。 - **发送消息**:可以通过调用Handler的`sendMessage()`方法向其关联的MessageQueue发送消息。 - **处理消息**:当消息从MessageQueue中取出后,Handler会...

Global site tag (gtag.js) - Google Analytics