Android 试图让我的应用与本地服务通信
Posted
技术标签:
【中文标题】Android 试图让我的应用与本地服务通信【英文标题】:Android trying to get my app to talk to a local service 【发布时间】:2011-04-29 14:44:53 【问题描述】:我在本地创建了一个服务,想知道是否有办法调用它的方法。我正在考虑使用流套接字并让客户端向服务发送消息,但这似乎需要做很多工作。 我必须创建服务的代码
public class Welcome extends Activity implements OnClickListener
private static final int NOTIFY_ME_ID=1337;
private Timer timer=new Timer();
private int count=0;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// set up buttons
View mAppoitment = findViewById(R.id.appoitment);
mAppoitment.setOnClickListener(this);
// start background thread
Log.v("TED:", "Starting thread");
startService(new Intent(Welcome.this,
BackgroundService.class));
泰德
【问题讨论】:
向服务发送Intent
。服务应该注册一个广播接收器来接收特定的意图。
【参考方案1】:
您可能需要考虑从服务中公开 AIDL 接口。有关更多详细信息和示例,请参阅此处的文档:http://developer.android.com/guide/developing/tools/aidl.html
另一种选择是让服务注册一个广播接收器并向其发送 Intent。
【讨论】:
【参考方案2】:您可以查看以前的答案:Android: Passing a Service a Handler。
Messenger 接口绕过 AIDL 复杂性(有点):http://developer.android.com/reference/android/app/Service.html#RemoteMessengerServiceSample
一般我已经使用了ServiceConnection并传递了一个Handler实例:你可以在http://developer.android.com/reference/android/app/Service.html#LocalServiceSample看到如何使用ServiceConnection
【讨论】:
以上是关于Android 试图让我的应用与本地服务通信的主要内容,如果未能解决你的问题,请参考以下文章