startservice在Android中不工作

startservice在Android中不工作,android,service,Android,Service,我是Android新手。现在我正在使用服务类做一个项目。在我的应用程序中包含一个列表视图。当我们单击列表视图中的项目时,一个服务类将启动 但是在那个地方发生了一些问题。在第一个应用程序打开时,服务类将工作。但是如果我们返回并再次按下ListView,服务类将不工作。也就是说,那个时候不打电话。为什么会发生这个问题。请帮帮我。代码如下所示 lv.setOnItemClickListener(new OnItemClickListener() { @Override pub

我是Android新手。现在我正在使用服务类做一个项目。在我的应用程序中包含一个列表视图。当我们单击列表视图中的项目时,一个服务类将启动

但是在那个地方发生了一些问题。在第一个应用程序打开时,服务类将工作。但是如果我们返回并再次按下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);
    }


});
}
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//TODO自动生成的方法存根
字符串项=pat_id[arg2];
CommonClass.item=项目;
系统输出打印项次(“项目1”+通用类项目);
startService(新意图(getApplicationContext(),LocationService.class));
//新建Async_view_report().execute(rep_url、item、CommonClass.doctor_id);
}
});
}

一旦启动
服务
,它将在后台一直运行,直到您调用
stopSelf()
。如果您尝试在服务仍在运行时再次启动该服务,它将无法工作。在这种情况下,您应该使用
bindService()
。我的建议是在您完成操作后停止服务。

lv.setOnItemClickListener(新的OnItemClickListener(){
 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);
        }
    });
@凌驾 公共链接(AdapterView arg0、视图arg1、内部arg2、, 长arg3){ //TODO自动生成的方法存根 字符串项=pat_id[arg2]; CommonClass.item=项目; 系统输出打印项次(“项目1”+通用类项目); Intent Intent=新的Intent(getApplicationContext(),LocationService.class); startService(意向); } });

试试这个

试试在清单文件中用完整地址声明服务, 例如:-

 <service android:enabled="true" android:name="com.example.LocationService"></service>


是的。我在清单文件中声明服务在服务类内部运行异步任务时有任何问题。这里有一个异步任务在服务类中运行。这不是真的,您应该阅读
https://developer.android.com/reference/android/content/Context.html?hl=es-419#startService(android.content.Intent)
对该方法的每次调用都将导致对目标服务的onStartCommand(Intent,int,int)方法的相应调用
即使该服务正在运行,请放入您的服务类这应该是正确的答案,我忘记了在从其他项目复制粘贴后添加到清单,但接受的答案甚至不是真的