3 回答
TA贡献1784条经验 获得超7个赞
第一个上下文(可以是活动/服务等)
对于Service,您需要覆盖onStartCommand,您可以直接访问intent:
Override
public 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)创建一个新的Bundle
Intent 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 differ
if (myIntent !=null && myIntent.getExtras()!=null)
String value = myIntent.getExtras().getString(key);
}
注意: Bundles对所有基本类型,Parcelables和Serializables都有“get”和“put”方法。我只是将Strings用于演示目的。
TA贡献1784条经验 获得超9个赞
如果您绑定了您的服务,您将获得Extra in onBind(Intent intent)。
活动:
Intent intent = new Intent(this, LocationService.class);
intent.putExtra("tour_name", mTourName);
bindService(intent, mServiceConnection, BIND_AUTO_CREATE);
服务:
@Override
public IBinder onBind(Intent intent) {
mTourName = intent.getStringExtra("tour_name");
return mBinder;
}
- 3 回答
- 0 关注
- 1213 浏览
添加回答
举报