2010-06-19 21 views
8

Tôi hơi bị kẹt với các dịch vụ từ xa trong Android. điều là tôi thực hiện một dịch vụ từ xa trong gói "a.b.c" và tôi muốn các ứng dụng khác có thể truy cập dịch vụ này. tôi đã loại bỏ toàn bộ công cụ trợ giúp crappy và thiết kế "giao diện" của dịch vụ để hoạt động thông qua các mục đích phát sóng. hoạt động tốt cho đến nay ...làm cách nào để tôi bắt đầu (và liên kết) một dịch vụ từ xa trong Android được triển khai trong ứng dụng khác (gói khác)?

vấn đề là: làm cách nào để có được ứng dụng different (gói khác, dự án khác nhau, thậm chí có thể là nhà phát triển khác, ...) để bắt đầu/ngừng dịch vụ?

package d.e.f; 

import a.b.c.*; 

public class main extends Activity { 
    protected ImyService myService; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Intent intent = new Intent(ImyService.class.getName()); 
     bindService(intent, sConnection, Context.BIND_AUTO_CREATE); 
    } 

    protected ServiceConnection sConnection = new ServiceConnection() { 
     public void onServiceConnected(ComponentName className, IBinder binder) { 
      wlService = ImyService.Stub.asInterface(binder); 
      ServiceConnected = true; 
      Toast.makeText(main.this, "service connected", Toast.LENGTH_SHORT).show(); 
     } 

     public void onServiceDisconnected(ComponentName className) { 
      wlService = null; 
      ServiceConnected = false; 
      Toast.makeText(main.this, "service disconnected", Toast.LENGTH_SHORT).show(); 
     } 
    }; 
} 

điều này sẽ làm hỏng ứng dụng của tôi ngay khi khởi động. tôi đã làm gì sai? làm thế nào tôi sẽ có được điều này để làm việc?

khi nó đang chạy, lệnh và dữ liệu sẽ được chuyển qua chương trình phát sóng. do đó không phải là vấn đề thực sự ...

Trả lời

20

BướC# 1: Thiết lập <intent-filter> cho số <service> của bạn với chuỗi <action>.

BướC# 2: Sử dụng rằng chuỗi hành động cho Intent bạn sử dụng với bindService() (ví dụ, new Intent("this.is.my.custom.ACTION"))

+0

tác phẩm khá độc đáo cho tôi! – Ben

+3

@JPM: Xem https://github.com/commonsguy/cw-advandroid/blob/master/AdvServices/RemoteService/AndroidManifest.xml – CommonsWare

+0

Lol thật đơn giản ... nhưng thiên tài. Tôi không biết bạn có thể làm điều đó, cảm ơn – JPM

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