gpt4 book ai didi

android - 在android中安排任务

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:09 24 4
gpt4 key购买 nike

我正在使用下面的代码在 android 中安排任务,但它没有给出任何结果。请就此提出建议。

int delay = 5000; // delay for 5 sec.
int period = 1000; // repeat every sec.
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {

public void run() {
Toast.makeText(getApplicationContext(),"RUN!",Toast.LENGTH_SHORT).show();
}

}, delay, period);

最佳答案

TimerTasks 不适合在 android 环境中使用,因为它们不是上下文感知的。如果您的上下文消失,TimerTask 仍将在后台耐心等待,最终触发并可能导致您的应用程序崩溃,因为它的 Activity 之前已完成。或者,它可能会在您的 Activity 关闭后保留对它的引用,以防止它被垃圾收集并可能导致您的应用内存不足。

改为使用 postDelayed(),它会在 Activity 关闭时自动取消任务。

final int delay = 5000;
final int period = 1000;
final Runnable r = new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(),"RUN!",Toast.LENGTH_SHORT).show();
postDelayed(this, period);
}
};

postDelayed(r, delay);

顺便说一下,如果您需要手动取消任务,可以使用 removeCallbacks(r),其中 r 是您之前发布的可运行对象。

关于android - 在android中安排任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2857101/

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