gpt4 book ai didi

android - 无法在未在 CountDownTimer 中调用 Looper.prepare() 的线程内创建处理程序

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:20:17 24 4
gpt4 key购买 nike

我有一个服务。还有一个方法叫做 onServiceUpdate()。此方法类似于 Google Maps API 中的 onLocationChanged()。

所以我想在 onServiceUpdate() 方法中启动 CountDownTimer 但显示如下错误:

Can't create handler inside thread that has not called Looper.prepare()
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:200)
at android.os.Handler.<init>(Handler.java:114)
at android.os.CountDownTimer$1.<init>(CountDownTimer.java:114)
at android.os.CountDownTimer.<init>(CountDownTimer.java:114)
at skripsi.ubm.studenttracking.Service2$6.<init>(Service2.java:317)
at skripsi.ubm.studenttracking.Service2.onServiceUpdate(Service2.java:317)

这是我的代码:

    @Override
public void onServiceUpdate(ServiceState state)
{
final float[] distance = new float[2];
Location.distanceBetween(state.getGeoPoint().getLatitude(), state.getGeoPoint().getLongitude(), 6.130607787619352,106.81839518499267, distance);
if (distance[0] > 25.0)
{

CountDownTimer cdt5 = new CountDownTimer(total_onServiceUpdate,1000) {
@Override
public void onTick(long millisUntilFinished) {
total_onServiceUpdate = millisUntilFinished/1000;
}

@Override
public void onFinish() {
sendSMS();
stopSelf();
}
}.start();

}

最佳答案

onServiceUpdate() 是一个运行并通知您的非同步任务,因此它是一个后台线程。您需要做的就是调用 timer.start();从主线程开始,服务实际上在主线程上运行,但 intentService 不是这样,您的解决方案是

new Handler(Looper.getMainLooper()).post(new Runnable() {           
@Override
public void run() {
CountDownTimer cdt5 = new CountDownTimer(total_onServiceUpdate,1000) {
@Override
public void onTick(long millisUntilFinished) {
total_onServiceUpdate = millisUntilFinished/1000;
}

@Override
public void onFinish() {
sendSMS();
stopSelf();
}
}.start();
}
});

现在您可以继续了,先生。始终调用代码与屏幕调情 main Looper

希望对你有帮助

关于android - 无法在未在 CountDownTimer 中调用 Looper.prepare() 的线程内创建处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32283811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com