3

我有一个适用于 android 4.0(android:minSdkVersion="14") 的应用程序,其中包含许多需要从我的服务器下载(而不是删除或发送)新数据的 SQLite 表。目前用户有一个同步按钮,但是我想实现一些在 3G/Wifi 开启时每隔 1-2 小时自动同步的东西。

我应该使用什么模式或最佳实践?警报事物,本地服务,远程服务还是其他?

4

3 回答 3

0

你需要两件事:

确保您的代码在他自己的线程中运行,您不想在广播接收器中执行任何繁重的操作。运行此类代码的好地方是具有自己独立线程的服务。

于 2012-11-22T15:04:27.687 回答
0

使用服务广播接收器(对于 wifi 状态,如上所述)。请记住,就电池使用而言,每 X 次轮询 Web 服务器是一种非常糟糕的体验。尝试构建 GCM Web 服务。

于 2012-11-22T15:16:18.587 回答
0

我建议您阅读Android Pro 4的第 19 章(http://my.safaribooksonline.com/book/programming/android/9781430239307/chapter-19-broadcast-receivers-and-long-running-services/navpoint-164)然后使用这里已经准备好的源代码http://www.androidbook.com/akc/filestorage/satya/documentfiles/3810/ProAndroid4_Ch19_TestReceivers.zip

我通过使用Alarm + ALongRunningReceiver(=Broadcast Receiver) + ALongRunningNonStickyBroadcastService(Local Service) + LightedGreenRoom(Handles CPU partial_wake 所以它不会睡着) 做到了这一点

于 2012-11-26T14:18:14.813 回答