我正在使用服务在我的应用程序的后台运行20秒计时器。我希望服务在使用它的计时器时调用我的GameOver类。顺便说一下,用户在计时器运行时不断地切换活动,但是当它结束时,无论如何都必须通过屏幕将用户带到游戏中。我已经在服务中举杯祝酒,但这并没有显示出来。
这是我的服务:
这是我的主菜单,我称之为服务:
以下是我展示服务的清单:
请告知我服务或计时器未运行的原因。非常感谢你的帮助,我真的很感激!如果您需要更多代码,请告诉我,我会告诉您。谢谢!
: - )
答案 0 :(得分:0)
您的祝酒词没有显示,因为服务无法直接操作用户界面,例如显示祝酒词。
要从服务执行此操作,您需要在主线程上运行Toast代码。这可以这样做:
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(TwentySeconds.this.getApplicationContext(), "Started!", Toast.LENGTH_SHORT).show();
}
});
您的CountDownTimer不起作用,因为您从未启动它。很简单。
您创建了CountDownTimer,但从不在对象上调用.start()。
cdt.start();
答案 1 :(得分:0)
在这个问题上花了几个小时后,我发现了可怜的错误:
我有'< OUTSIDE'的服务声明应用程序>”结束标记。
<强>捂脸强>
始终将服务声明保留在标记
中