gpt4 book ai didi

java - 带有 ASyncTask 的计时器中的 IllegalStateException

转载 作者:行者123 更新时间:2023-12-01 07:34:06 24 4
gpt4 key购买 nike

我想每隔几分钟运行一次后台ASycTask。我创建了一个计时器,并执行后台任务的 .execute 命令。我还创建了一个 bool isChecking ,它在 BackgroundNotify 运行时为 true。问题是我仍然收到以下错误:

01-26 15:09:32.871: E/AndroidRuntime(22332): FATAL EXCEPTION: Timer-0
01-26 15:09:32.871: E/AndroidRuntime(22332): java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can be executed only once)
01-26 15:09:32.871: E/AndroidRuntime(22332): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:578)
01-26 15:09:32.871: E/AndroidRuntime(22332): at android.os.AsyncTask.execute(AsyncTask.java:534)
01-26 15:09:32.871: E/AndroidRuntime(22332): at de.tecfriends.vbtsplash2013.MainActivity$2.run(MainActivity.java:61)
01-26 15:09:32.871: E/AndroidRuntime(22332): at java.util.Timer$TimerImpl.run(Timer.java:284)

我做错了什么?

最佳答案

AsyncTask 只能执行一次。如果您需要再次执行该任务,请创建一个新实例,然后对其调用 execute():

if (task.getStatus() == AsyncTask.Status.FINISHED) {
task = new AsyncTask();
}

if (task.getStatus() != AsyncTask.Status.RUNNING) {
task.execute();
}

关于java - 带有 ASyncTask 的计时器中的 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14537781/

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