startservice在Android中不起作用

时间:2014-05-19 08:20:05

标签: android service

我是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);
    }


});
}

3 个答案:

答案 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);
        }
    });

试试这个