java - 活动在完成计时器后自动返回
问题描述
我正在尝试制作一个健身应用程序,并且我添加了一个计时器和一个应该在计时器完成后响起的铃声。但是,当计时器结束时,它不会响铃并且整个活动会自动返回到之前的状态(所有锻炼的列表)。这是我的代码
countDownTimer = new CountDownTimer(60 * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
String text = String.format(Locale.getDefault(), "%02d : %02d",
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) % 60,
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) % 60);
time.setText(text);
}
@Override
public void onFinish() {
mediaPlayer.start();
time.setText("01 : 00");
String txt = "Workout Completed";
nextWorkout.setVisibility(View.VISIBLE);
Toast.makeText(context, txt, Toast.LENGTH_LONG).show();
}
};
countDownTimer.start();
媒体播放器代码
mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.alarm);
解决方案
这里的问题是您给出了错误的 Toast 上下文。
Toast.makeText(context, txt, Toast.LENGTH_LONG).show();
这就是问题所在。检查这里的上下文。
推荐阅读
- python - python pandas:如何检查列项是否也是列表项
- android - android模拟器中的圆和线
- c# - 为什么 C# 中的 SendKeys 对我不起作用?
- asp.net - ASP.NET Core 图像调整大小
- css - 为什么在弹出窗口中溢出-x:自动在 iPhone 上不起作用?
- angular - 传播类型只能从对象 types.ts(2698) 创建
- android - 在 Android 中使用 Youtube API 的最佳方式是什么?
- firebase - 如何解决匿名用户的 FirebaseAuth isAnonymous 返回 false?
- c# - 在 C# SortedDictionary 中获取上方或下方最近的键
- reactjs - 使用多个组件时如何获得多个反冲原子?