android postdelayed 定时,android开发步步为营之61:android定时任务之Handler.postDelayed

此博客展示了Android中使用Handler实现定时任务的代码。通过按钮点击触发,可开始或关闭定时任务。开始时,1秒后执行任务,之后每隔5秒执行一次;关闭时,移除任务回调。代码运行在UI主线程,避免耗时操作引发ANR。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**

*

*/

package com.figo.study;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

/**

* @author figo

*

*/

public class HandlerActivity extends Activity {

private Button btnHandler, btnClose;

private Handler handler;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_handler);

handler = new Handler();

btnHandler = (Button) findViewById(R.id.btnHandler);

btnClose = (Button) findViewById(R.id.btnClose);

// 开始执行定时任务

btnHandler.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// 1秒后执行run

handler.postDelayed(run, 1000);

}

});

// 关闭定时任务

btnClose.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

handler.removeCallbacks(run);

}

});

}

// 其实是运行在UI主线程

Runnable run = new Runnable() {

@Override

public void run() {

// 这里new 一个AsyncTask或者Thread执行耗时任务,否则报ANR的bug

Toast.makeText(HandlerActivity.this, "test", Toast.LENGTH_SHORT)

.show();

// 每隔5秒后执行run方法

handler.postDelayed(this, 5000);

}

};

}

原文:http://blog.youkuaiyun.com/figo0423/article/details/45825133

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值