2

サービスを作成した場合、X 秒ごとにインテントをブロードキャストするにはどうすればよいですか? 行に沿ってコードのスニペットを見たのを覚えています

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

残念ながら、ループしているもののクラス名または正確なメソッド名はわかりません。名前だけで、検索の正しい方向に私を向けることができます.

4

2 に答える 2

3

使用できますHandler.postDelayedこれがドキュメントです。

例えば

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);
}

ここで実行中はフラグであり、揮発性ブール値として保持することをお勧めします。その値を変更することで、繰り返しを停止できます。

于 2013-04-17T02:27:52.870 に答える