我有一个自定义接收器,我从我的活动传递数据。让我们调用这个接收器IntentReceiver()。
一旦IntentReceiver()收到意图,我就会触发另一个将数据传递给后台处理数据的服务的意图。让我们调用这个服务IntentService()。有没有办法直接将数据传递给IntentReceiver()而无需从捆绑包中获取数据,然后将其重新打包为新意图?我目前的代码如下:
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String address = extras.getString("address");
Intent readIntent = new Intent(context, IntentService.class);
readIntent.putExtra("address", address);
context.startService(readIntent);
}
此代码使用以下行为:Intent - >捆绑 - >意图
有没有办法让它成为:意图 - >意图
答案 0 :(得分:1)
不是在另一个包中重新打包,而是可以使用相同的intent对象,并按照@CommonsWare所描述的进一步调用set类,如
@Override
public void onReceive(Context context, Intent intent) {
intent.setClass(context, MessageService.class);
context.startService(intent);
}