gpt4 book ai didi

Android - 使用 postDelayed() 调用定期运行方法

转载 作者:IT王子 更新时间:2023-10-28 23:57:28 25 4
gpt4 key购买 nike

我在一个 Android 应用程序中遇到一种情况,我想启动一个应该每秒运行的网络 Activity (发送一些数据)。我实现这一点如下:

onCreate() 我有代码:

tv = new TextView(this);
tv.postDelayed(sendData, 1000);

sendData() 函数:

   Handler handler = new Handler();
private Runnable sendData=new Runnable(){
public void run(){
try {
//prepare and send the data here..
handler.removeCallbacks(sendData);
handler.postDelayed(sendData, 1000);
}
catch (Exception e) {
e.printStackTrace();
}
}
};

问题是这样出现的:当用户按下后退按钮并且应用程序出现(UI 消失)时,sendData() 函数仍然会被执行,这正是我想要的。现在,当用户重新启动应用程序时,我的 onCreate() 再次被调用,我得到 sendData() 每秒调用两次。就这样继续下去。每次用户出来并重新开始时,每秒都会发生一次 sendData()

我做错了什么?是我的 new Handler() 创建问题吗?处理这个问题的最佳方法是什么?我希望每秒调用一次 sendData() 直到用户退出应用程序(表单应用程序管理器)。

最佳答案

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Do something after 100ms
Toast.makeText(c, "check", Toast.LENGTH_SHORT).show();
handler.postDelayed(this, 2000);
}
}, 1500);

关于Android - 使用 postDelayed() 调用定期运行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845172/

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