我在一个 Android 应用程序中遇到一种情况,我想启动一个应该每秒运行的网络活动(发送一些数据)。我实现这一点如下:
在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()
每秒打一个电话,直到用户退出应用程序(表单应用程序管理器)。