为了账号安全,请及时绑定邮箱和手机立即绑定

实际操作过程发现,老师写的这个stop按钮,点击根本无法停止消息发送,还有人遇到这个问题吗,求指导,以下是我的代码?

package com.example.handler01;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class FourActivity extends Activity implements OnClickListener{
	//创建主线程的handler
	private Handler handler = new Handler() {
		public void handleMessage(android.os.Message msg) {
			Message message = new Message();
			System.out.println("main Handler");
			//向子线程发送消息
			threadHandler.sendMessageDelayed(message, 1000);
		};
	};
	
	private Handler threadHandler;
	
	private Button button1;
	
	private Button button2;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.four);
		button1 = (Button) findViewById(R.id.button1);
		button2 = (Button) findViewById(R.id.button2);
		button1.setOnClickListener(this);
		button2.setOnClickListener(this);
		HandlerThread thread = new HandlerThread("handlerThread");
		thread.start();
		//创建子线程的handler
		threadHandler = new Handler(thread.getLooper()) {
			@Override
			public void handleMessage(Message msg) {
				Message message = new Message();
				System.out.println("Thread Handler");
				//向主线程发送消息
				handler.sendMessageDelayed(message, 1000);
				
			} 
		};
	}

	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.button1:
			handler.sendEmptyMessage(1);
			break;
		case R.id.button2:
			handler.removeMessages(1);
		default:
			break;
		}
	}
}


正在回答

2 回答

case R.id.btn_2:
    handler.removeMessages(0);
    handler2.removeMessages(0);
    break;

这样写就OK.

0 回复 有任何疑惑可以回复我~
#1

慕粉Love娟娟

我使用handler.removeMessages(1);handler2.removeMessages(1);没有作用,问一下,这个what有啥含义
2017-07-21 回复 有任何疑惑可以回复我~
#2

慕粉Love娟娟

我知道了,课程里对message没有进行设置,则msg.what=0;所以要移除what=0的消息,其实不用两个都移除,只用一个 handler.removeMessages(0);就可以了
2017-07-21 回复 有任何疑惑可以回复我~

发完才发现已经有人提过了,问题已解决!话说发出的问题怎么取消啊?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android面试常客Handler详解
  • 参与学习       54881    人
  • 解答问题       183    个

学Android开发,必学Handler,也是Android面试常客

进入课程

实际操作过程发现,老师写的这个stop按钮,点击根本无法停止消息发送,还有人遇到这个问题吗,求指导,以下是我的代码?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信