举个例子,腾讯自选股的这个列表里的数据,可以每隔几秒就刷新一次。
我目前的考虑是作为一个定时任务,任务内容就是发起网络请求去服务器拿新的数据。我自己这边的思路有以下三个:
新建Timer
和TimerTask
,然后用timer.schedule(timerTask, 0, 5000);
启动。不过,我不太清楚Timer用于Android里是否会有一些弊端。
新建一个Service,然后在Service内使用AlarmManager
发起定时广播,并在对应的BroadcastReceiver里再次启动Service。 通过这样的循环来实现定时任务,
新建一个Service,通过这个Service和服务器建立持久化的连接,然后由服务器来推送消息。不过,我对Android里这个做法还不太了解,这里持久连接是WebSocket吗?大概怎样的实现过程?
请问哪一种思路会更合适?
也可以用
handler
的postDelay
,在handler
的handleMessage里面继续postDelay
,在Service
或者Activity
退出的时候,记得removeCallback
就行了需要用
AlarmService
用普通Timer 会在待机的时候中断。
并且类型需要设置为
AlarmManager.ELAPSED_REALTIME_WAKEUP
调用
另起一个类
这种需求当然是TimeTask要好一点,用socket有点浪费资源了,毕竟你是定时的,不像推送那样我们不知道他什么时候更新。 要注意的一点是,当程序在后台工作时记得把TimeTask暂停。不然一直跑流量,用户体验不行