1

我有一个应用程序,即使应用程序没有运行,我也想在打开 wifi 后立即上传一些数据。我认为这可以使用android后台服务来完成。请帮助我在应用程序未运行时使用后台服务上传数据,或建议我使用其他方法来实现此目的。

提前致谢!!

4

2 回答 2

1

为了更加详细,请执行以下操作

  • 创建一个已启动的服务(使用 startService() 而不是 bindService() 启动的服务。
  • 实现该服务的 onStartCommand() 回调。在此回调方法中检查是否有任何数据要上传(如果此数据是由活动创建的,明智的做法是使用 DB 表对要上传的数据进行排队,然后服务从该 DB 中获取数据)。检查 WIFI 连接,如果可用,请上传数据。
  • 现在您需要在 WIFI 可用时触发此服务。这里有 2 种实现方式
  • 方法一:在您的应用程序清单文件中注册,以便在 WIFI 连接更改时收到通知,请参阅此链接。当 WIFI 状态改变时,会调用注册的广播接收器。如果 WIFI 可用,则从广播接收器启动您的服务
  • 方法 2:使用 AlarmManager 定期启动您的服务(比如每 10 分钟)。参考这个链接。如果要上传的数据偶尔生成一次,这种方法将是有益的。

希望这会有所帮助。如果您有任何问题,请告诉我。

于 2013-11-20T12:51:31.127 回答
0

您必须使用完全独立于活动的无界服务(有关更多详细信息,请查看此处)。启动服务后,使用 ConnectivityManager 监控您的 Internet 连接。使用这个类似的例子。玩得开心。

于 2013-11-14T07:51:05.120 回答