2014-05-19 33 views
5

Tôi mới sử dụng Android. Bây giờ tôi đang làm một dự án bằng cách sử dụng lớp Service.In ứng dụng của tôi chứa một ListView. Khi chúng ta nhấp vào mục trong chế độ xem danh sách, một lớp dịch vụ sẽ bắt đầu.không hoạt động trong Android

Nhưng một số vấn đề xảy ra ở vị trí đó. Thời gian ứng dụng đầu tiên mở lớp Dịch vụ sẽ hoạt động. Nhưng nếu chúng ta quay trở lại và một lần nữa nhấn vào ListView lớp Service không hoạt động. tức là, nó không gọi thời gian đó. Tại sao vấn đề này lại xảy ra. Làm ơn giúp tôi. Mã được đưa ra dưới đây.

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

xin vui lòng đặt lớp dịch vụ –

Trả lời

-1

Khi bạn khởi động Service, nó luôn chạy ở chế độ nền cho đến khi bạn gọi stopSelf(). Nếu bạn cố gắng khởi động lại dịch vụ, trong khi nó vẫn chạy, nó sẽ không hoạt động. Trong trường hợp đó, bạn nên sử dụng bindService(). Lời khuyên của tôi là ngừng dịch vụ khi bạn đã thực hiện các hoạt động của mình.

+0

yes.I bạn dịch vụ trong file manifest tuyên bố

+0

Xin chào mọi vấn đề khi chạy tác vụ Async bên trong lớp dịch vụ.Đây là một nhiệm vụ Async được caaling trong lớp dịch vụ –

+0

xem câu trả lời cập nhật –

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

Hãy thử điều này

27

Hãy thử dịch vụ khai báo trong tập tin Manifest với địa chỉ đầy đủ, ví dụ: -

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

Đây phải là câu trả lời đúng, tôi quên thêm vào Manifest sau một bản sao + dán từ dự án khác nhưng câu trả lời được chấp nhận thậm chí không đúng – Gonzalo

Các vấn đề liên quan