活动:
Intent service = new Intent(OverlayShowingService.this, shortLayer.class);
service.putExtra("prevact","overlayService");
startService(service);
stopService(service);
什么是绑定服务?我可以从活动中访问我的数据吗?我犯了什么错误?
在服务中:
@Override
public IBinder onBind(Intent intent) {
return null;
}
public int onStartCommand (Intent Preintent, int flags, int startId) {
PreActivity = Preintent.getStringExtra("prevact");
return START_STICKY;
}
答案 0 :(得分:0)
遵循此解决方案
要准确回答这个问题"如何通过意图从活动发送数据到服务",是否必须覆盖onStartCommand()方法,这是您收到intent对象的地方:
当你创建Service时,你应该覆盖onStartCommand()方法,所以如果仔细查看下面的签名,就会收到传递给它的intent对象:
public int onStartCommand(Intent intent, int flags, int startId)
因此,从一个活动中,您将创建intent对象以启动服务,然后将数据放在intent对象中,例如,您希望将UserID从Activity传递给Service:
Intent serviceIntent = new Intent(YourService.class.getName())
serviceIntent.putExtra("UserID", "123456");
context.startService(serviceIntent);
当服务启动时,将调用其onStartCommand()方法,因此在此方法中,您可以从intent对象中检索值(UserID),例如
public int onStartCommand (Intent intent, int flags, int startId) {
String userID = intent.getStringExtra("UserID");
return START_STICKY;
}
希望它能正常工作。