服务中的网络编程

时间:2013-01-12 16:09:36

标签: android android-service android-networking

我正在编写一个更新AppWidget中textview的服务。它是关于阅读RSS和显示文本。因此,如果设备上没有激活互联网,我需要将文本设置为“无可用互联网”。所以我在服务的onStart()方法中放了

ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
if(!netInfo)
{
 try-catch block to fetch XML using XMLPULLPARSER and set the textview
}
else
 set the textview using remoteview that there is no internet

但这不起作用。该服务被后台ANR杀死。如何查看网络状态?

1 个答案:

答案 0 :(得分:1)

虽然Service设计用于在后台执行操作,但默认情况下它仍然在ui线程中运行。如果要在服务中执行长时间运行操作,则必须创建工作线程。或者您可以使用为您创建它的IntentService