我是Android新手。现在我正在使用Service类做一个项目。在我的应用程序中包含一个 ListView 。当我们点击列表视图中的项目时,将启动一个Service类。
但是在那个地方发生了一些问题。在第一个应用程序打开时,Service类将会起作用。但是,如果我们再次按下ListView,则服务类无法正常工作。也就是说,它没有召唤那个时间。为什么会出现这个问题。请帮我。代码如下。
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String item=pat_id[arg2];
CommonClass.item=item;
System.out.println("item 1" +CommonClass.item);
startService(new Intent(getApplicationContext(),LocationService.class));
//new Async_view_report().execute(rep_url,item,CommonClass.doctor_id);
}
});
}
答案 0 :(得分:31)
尝试使用完整地址在Manifest文件中声明服务, 例如: -
<service android:enabled="true" android:name="com.example.LocationService"></service>
答案 1 :(得分:-1)
启动Service
后,它会一直在后台运行,直到您拨打stopSelf()
为止。如果您尝试再次启动该服务,当它仍在运行时,它将无法正常工作。在这种情况下,您应该使用bindService()
。我的建议是在您完成操作后停止服务。
答案 2 :(得分:-1)
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String item=pat_id[arg2];
CommonClass.item=item;
System.out.println("item 1" +CommonClass.item);
Intent intent = new Intent(getApplicationContext(),LocationService.class);
startService(intent);
}
});
试试这个