我有一个Android 4.0的应用程序(android:minSdkVersion =“14”),有很多SQLite表需要从我的服务器下载(不删除或发送)新数据。目前用户有一个同步按钮,但我希望实现一些在3G / Wifi开启时每1-2小时自动同步的东西。
我应该使用哪种模式或最佳做法?警报,本地服务,远程服务或其他什么?
答案 0 :(得分:0)
你需要两件事:
确保您的代码在自己的线程中运行,您不希望在广播接收器中执行任何繁重的操作。运行这样的代码的好地方是使用自己独立的线程的服务。
答案 1 :(得分:0)
使用service和broadcast receiver (for the wifi state, as mentioned above)。请记住,在电池使用方面,每X次轮询一次Web服务器是非常糟糕的经历。尝试构建GCM Web服务。
答案 2 :(得分:0)
我建议你阅读 Android Pro 4 (http://my.safaribooksonline.com/book/programming/android/9781430239307/chapter-19-broadcast-receivers-and-long-running-services/navpoint-164)的第19章,然后使用已经准备好的源代码来自http://www.androidbook.com/akc/filestorage/satya/documentfiles/3810/ProAndroid4_Ch19_TestReceivers.zip
我使用闹钟 + ALongRunningReceiver(=广播接收器) + ALongRunningNonStickyBroadcastService(本地服务) + LightedGreenRoom(句柄) CPU partial_wake所以它不会入睡。