如何停止在Android上播放广播?

问题描述 投票:0回答:1

我有一个Android项目,它每秒发送一个广播,我试图找出如何在点击后停止它。

我的广播代码是:

Intent broadcastIntent = new Intent ("send broadcast");
sendBroadcast(broadcastIntent);
stoptimertask(); //it is stopping broadcast for a second.
java android android-intent android-broadcast
1个回答
0
投票

您可以定义两种方法:一种启动Timer以每秒发送一次广播,另一种启动定时器。

Timer timer;

private void startBroadcastLoop() {
    timer = new Timer();
    timer.schedule(new TimerTask() {

        @Override
        public void run() {
            // Send broadcast
            Intent broadcastIntent = new Intent ("send broadcast");
            sendBroadcast(broadcastIntent);
        }

    },0,1000); // Send broadcast every second
}

private void stopBroadcastLoop() {
    if(timer!=null){
        timer.cancel();
        timer = null;
    }    
}

然后在你的按钮上,根据布尔值的状态调用正确的函数:

sendBroadcastBool = false;
button.setOnClickListener(new OnClickListener(){
        public void onClick(View v) {
            // If broadcast not sent yet
            if (!sendBroadcastBool) {
                startBroadcastLoop();
                sendBroadcastBool = true;
            }
            else {
                stopBroadcastLoop();
                sendBroadcastBool = false;
            }
        }
    });

最好

© www.soinside.com 2019 - 2024. All rights reserved.