Android 如何在后台服务中从internet读取文本文件?安卓

Android 如何在后台服务中从internet读取文本文件?安卓,android,Android,我在应用程序a中运行服务,此服务在连接发生更改时调用广播接收器。我在服务中敬酒,对所有API都很好,但我的应用程序需要从互联网读取一个文本文件。我正在测试5路,但所有代码都适用于Android 2.*而不适用于Android 4.*和change connectivity force close应用程序 服务活动 Log.txt 它引发NetworkOnMainThreadException,因为服务在UI线程中默认启动。所以我建议使用IntentService,而不是作为超级类使用Servic

我在应用程序a中运行服务,此服务在连接发生更改时调用广播接收器。我在服务中敬酒,对所有API都很好,但我的应用程序需要从互联网读取一个文本文件。我正在测试5路,但所有代码都适用于Android 2.*而不适用于Android 4.*和change connectivity force close应用程序

服务活动 Log.txt
它引发NetworkOnMainThreadException,因为服务在UI线程中默认启动。所以我建议使用IntentService,而不是作为超级类使用Service

这样做:

public MyService extends IntentService{

} 
反而

public MyService extends Service{

} 
为了更好地理解,请阅读文章

注意:服务在其宿主进程的主线程中运行。除非您另有指定,否则服务不会创建自己的线程,也不会在单独的进程中运行。这意味着,如果您的服务要执行任何CPU密集型工作或阻止操作(如MP3播放或联网),您应该在服务中创建一个新线程来执行该工作。通过使用单独的线程,您将降低应用程序不响应ANR错误的风险,并且应用程序的主线程可以保持专用于用户与您的活动的交互

创建异步任务并在后台执行网络请求

public MyService extends IntentService{

} 
public MyService extends Service{

}