你可以实现在android开发过程中,一个类中的按钮被按下时,另一个类中一个时长为90分钟的倒计时开始倒计时吗
时间: 2023-06-18 20:03:43 浏览: 45
可以的,以下是一种实现方式:
在第一个类中,监听按钮的点击事件,当按钮被点击时,通过接口回调或广播等方式发送一个消息给第二个类,通知它开始倒计时。
在第二个类中,接收到消息后,创建一个CountDownTimer对象,设置时长为90分钟,并实现它的onTick和onFinish方法,分别在每秒钟和倒计时结束时进行相应的操作。
具体代码实现如下:
第一个类中:
```
public class MyButtonClickListener implements View.OnClickListener {
private OnCountDownStartListener mListener;
public MyButtonClickListener(OnCountDownStartListener listener) {
mListener = listener;
}
@Override
public void onClick(View v) {
if (mListener != null) {
mListener.onStartCountDown();
}
}
}
public interface OnCountDownStartListener {
void onStartCountDown();
}
```
第二个类中:
```
public class MyCountDownTimer extends CountDownTimer {
public MyCountDownTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
// 每秒钟执行一次
long minutes = millisUntilFinished / 1000 / 60;
long seconds = millisUntilFinished / 1000 % 60;
Log.d("CountDown", "倒计时:" + minutes + " 分钟 " + seconds + " 秒");
}
@Override
public void onFinish() {
// 倒计时结束执行
Log.d("CountDown", "倒计时结束");
}
}
public class MyCountDownStartReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
MyCountDownTimer timer = new MyCountDownTimer(90 * 60 * 1000, 1000);
timer.start();
}
}
```
在第一个类中,创建一个MyButtonClickListener对象,并把它设置为按钮的点击事件监听器:
```
MyButtonClickListener listener = new MyButtonClickListener(new OnCountDownStartListener() {
@Override
public void onStartCountDown() {
Intent intent = new Intent("com.example.countdown.START");
sendBroadcast(intent);
}
});
button.setOnClickListener(listener);
```
在第二个类中,注册一个MyCountDownStartReceiver广播接收器,并把它的intent-filter设置为"com.example.countdown.START":
```
MyCountDownStartReceiver receiver = new MyCountDownStartReceiver();
IntentFilter filter = new IntentFilter("com.example.countdown.START");
registerReceiver(receiver, filter);
```
这样,当第一个类中的按钮被点击时,第二个类中的倒计时就会开始倒计时,每秒钟会在Logcat中输出一条消息,倒计时结束时也会输出一条消息。你可以根据需求修改相应的操作。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)