我有一个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().
我究竟做错了什么?是我的新Handler()创建问题吗?处理这个问题的最佳方法是什么?我想要每秒一次sendData()调用,直到用户退出应用程序(表单应用程序管理器).
解决方法:
为什么不在onCreate()中创建服务并输入逻辑.在这种情况下,即使按下后退按钮服务也将继续执行.一旦你进入申请,它就不会打电话
onCreate()再次.相反它会调用onStart()
以上是内存溢出为你收集整理的Android – 使用postDelayed()调用定期运行方法全部内容,希望文章能够帮你解决Android – 使用postDelayed()调用定期运行方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)