我在课堂上有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"/>
答案 0 :(得分:3)
您不能拥有非静态内部服务类。如果您想拥有一个内部Service类,请将其声明为static并在清单文件中指定它:
<service android:name="com.my.package.OuterClass$InnerServiceClass" />
答案 1 :(得分:0)
<service ...>
是<application...>
的孩子吗?如果不是,那可能就是问题所在。
还有一个建议是使用 getApplicationContext()返回的上下文,但这不应该那么重要。