IntentService没有启动

时间:2014-02-07 12:24:20

标签: android android-intent android-service android-intentservice

我在课堂上有IntentService。意图服务没有启动。我究竟做错了什么?

public class getListOfUsersService extends IntentService {  
  public getListOfUsersService() {        
  super("DownloadListOfUsersIntentService");     
     System.out.println("intentService started");   
  }
 @Override  
  protected void onHandleIntent(Intent intent) {    
   System.out.println("intentService onHandle started");           
    mService.sendMessage(Protocols.REQUEST_SEND_USER_LIST);
          while(true) {
                UserHolder UH = new UserHolder();
                String usersdata = mService.getString();
                System.out.println("userdata: "+ usersdata);
                String array[] = usersdata.split("<!!>");
                UH.setUserName(array[1]);
                UH.setUserPhoneNum(array[2]);
                userHolderList.add(UH);
                System.out.println("added to usersList");               
                if(isDone) break;
           }

      }
    }

我在方法中启动它:

public void update() {
    System.out.println("update");
    Intent intent = new Intent(this, getListOfUsersService.class);
    startService(intent);
}

我在Manifest中注册了它:

 <service
        android:name=".getListOfUsersService"
        android:exported="false"/>

2 个答案:

答案 0 :(得分:3)

您不能拥有非静态内部服务类。如果您想拥有一个内部Service类,请将其声明为static并在清单文件中指定它:

<service android:name="com.my.package.OuterClass$InnerServiceClass" />

答案 1 :(得分:0)

<service ...><application...>的孩子吗?如果不是,那可能就是问题所在。

还有一个建议是使用 getApplicationContext()返回的上下文,但这不应该那么重要。