我如何获得一个Android服务广播每隔几秒钟的意图是什么? [英] How do I get an Android service to broadcast an intent every few seconds?

查看:118
本文介绍了我如何获得一个Android服务广播每隔几秒钟的意图是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我创建了一个服务,我怎么得到它播出的意图每X秒?我记得沿线看到code的片段

If I've created a service, how do I get it to broadcast an intent every X seconds? I remember seeing a snippet of code along the lines

startThreadDelayed( new Thread() {
    public void run() {
        doStuff();
        sendBroadcast(messageIntent);
        startThreadDelayed(this, 1000);
    }
}, 1000);

可惜的是我不知道任何类名,或者确切的方法名,无论是循环的。只是一个名字就点我的寻找正确的方向。

Unfortunatelly I'm not sure of either the class name, or the exact method name, for whatever is looping. Just a name would point me in the right direction of searching.

推荐答案

您可以使用 Handler.postDelayed 。 <一href=\"http://developer.android.com/reference/android/os/Handler.html#postDelayed%28java.lang.Runnable,%20long%29\"相对=nofollow>这里的文档。

例如

Handler h = new Handler();
YourClass yourRunnable = new YourClass();
h.postDelayed(youRunnable,1000);


public class YourClass implements Runnable{
    public void run(){
    doStuff();
    sendBroadcast(messageIntent);
    if(running)
        h.postDelayed(youRunnable,1000);
}

跑这里是一个标志,较好地保持它作为挥发性布尔值。因此,通过改变它的价值,你可以停止repeatition。

here running is a flag better keep it as volatile boolean. So that by changing it's value you can stop the repeatition.

这篇关于我如何获得一个Android服务广播每隔几秒钟的意图是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆