Android:来自后台服务的网络请求与应用程序分开启动

时间:2011-07-27 09:56:16

标签: android networking service

我在尝试通过在设备启动时启动的后台服务获取数据时遇到问题。从专用应用程序运行时,它可以很好地检索数据,但是当单独运行时,它会正确启动但不返回任何内容。它不依赖于任何其他类,它只使用自己的方法。

是否可以从以这种方式启动的后台服务执行http请求?

BackgroundService.java片段:

public class BackgroundService extends Service {

@Override
public IBinder onBind(Intent arg0) {
    return null;
}

@Override
public void onCreate() {  
    new BackgroundTask(this).run();
}

BackgroundTask类在其run()方法中完成所有工作,该方法包含http请求的代码,如果从应用程序运行该服务,则该代码可正常工作。我是否必须对onBind方法做些什么?

1 个答案:

答案 0 :(得分:1)

您应该从startService()广播接收器拨打BOOT_COMPLETED。在您拨打stopSelfResult()stopSelf()或有人致电stopService()之前,您的服务将被视为有效。虽然服务处于活动状态,但它可以运行所需的任何Web请求(当然,这应该在单独的线程中完成)。

有关详细信息,请参阅Android文档中的"Creating a Started Service"部分。