【发布时间】:2011-08-09 10:12:53
【问题描述】:
我创建了一个服务和一个活动。在那个活动中,我有两个按钮。一种是启动服务,另一种是停止服务。我可以通过调用startService() 启动远程活动,但无法使用stopService() 停止服务。如果我点击开始按钮,我发现额外的远程进程开始运行(使用 eclipse ide)。我期待如果我点击停止按钮,那么额外的进程应该停止。但它没有发生。我能够成功调用启动和停止服务方法。为了验证代码,我在每个启动和停止方法中添加了一条 toast 消息。如何停止远程服务?
我的活动
public class SimpleServiceController extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button start = (Button)findViewById(R.id.serviceButton);
Button stop = (Button)findViewById(R.id.cancelButton);
start.setOnClickListener(startListener);
stop.setOnClickListener(stopListener);
}
private OnClickListener startListener = new OnClickListener() {
public void onClick(View v){
startService(new Intent(SimpleServiceController.this,SimpleService.class));
}
};
private OnClickListener stopListener = new OnClickListener() {
public void onClick(View v){
stopService(new Intent(SimpleServiceController.this,SimpleService.class));
}
};
}
服务
public class SimpleService extends Service {
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(this,"Service created ...", Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service destroyed ...", Toast.LENGTH_LONG).show();
}
}
清单
<service android:name=".SimpleService" android:process=":remote">
</service>
【问题讨论】: