使用Intent将数据从Activity传递到Service

如何获取Service从调用传递的Android 中的数据Activity



POPMUISE
浏览 1214回答 3
3回答

噜噜哒

第一个上下文(可以是活动/服务等)对于Service,您需要覆盖onStartCommand,您可以直接访问intent:Overridepublic int onStartCommand(Intent intent, int flags, int startId) {你有几个选择:1)使用包从意向:Intent mIntent = new Intent(this, Example.class);Bundle extras = mIntent.getExtras();extras.putString(key, value);  2)创建一个新的BundleIntent mIntent = new Intent(this, Example.class);Bundle mBundle = new Bundle();mBundle.extras.putString(key, value);mIntent.putExtras(mBundle);3)使用Intent 的putExtra()快捷方法Intent mIntent = new Intent(this, Example.class);mIntent.putExtra(key, value);新上下文(可以是活动/服务等)Intent myIntent = getIntent(); // this getter is just for example purpose, can differif (myIntent !=null && myIntent.getExtras()!=null)     String value = myIntent.getExtras().getString(key);}注意: Bundles对所有基本类型,Parcelables和Serializables都有“get”和“put”方法。我只是将Strings用于演示目的。

千万里不及你

如果您绑定了您的服务,您将获得Extra in onBind(Intent intent)。活动: Intent intent = new Intent(this, LocationService.class);                                                                                      intent.putExtra("tour_name", mTourName);                     bindService(intent, mServiceConnection, BIND_AUTO_CREATE); 服务:@Overridepublic IBinder onBind(Intent intent) {    mTourName = intent.getStringExtra("tour_name");    return mBinder;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android