gpt4 book ai didi

java - 将 AsyncTask 放在哪里,使其只启动一次

转载 作者:行者123 更新时间:2023-12-01 18:35:46 26 4
gpt4 key购买 nike

现在,我有一个计时器在 FragmentonCreate 方法中启动 AsyncTask(计时器间隔为 1 分钟)。所以我认为这不是一个好主意,因为如果配置发生更改, fragment 将再次调用 onCreate 方法,我将有 2 个正在运行的 Timer AsyncTasks,对吗?

因此,我需要某种方法将 AsyncTask 放置在应用程序的整个生命周期中仅启动一次的位置。

最佳答案

不需要 Asynctask 来实现简单的计时器,试试这个 -

class MyFragment extends Fragment{
private int currentTime;
private void startTimer(){
new Handler().
postDelayed(new Runnable(){
@Override
public void run()
{
onTick();
startTimer();
}
},1000*60);
}
private void onTick()
{
currentTime++;
}
@Override
public void onSaveInstanceState(Bundle outState)
{
outState.putInt("currentTime", currentTime);
super.onSaveInstanceState(outState);
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
if (savedInstanceState != null)
{
currentTime=savedInstanceState.getInt("currentTime",0);
startTimer();
}
}

关于java - 将 AsyncTask 放在哪里,使其只启动一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22097940/

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