隐式Intent响应与责任传递

 

Intent Filter匹配后的响应

 

当一个应用程序的组件通过一个隐式Intent启动后,它需要找到它要执行的动作以及执行动作需要的数据。

 

调用getIntent方法(一般在onCreate方法里)来释放Intent,从而启动一个组件,如下:

 

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.main);

Intent intent = getIntent();

}

 

使用getDatagetAction方法来查找Intent的数据和动作。使用类型安全的get<type>Extra方法来释放临时信息包中的额外信息。

 

String action = intent.getAction();

Uri data = intent.getData();

 

传递责任

 

你可以使用startNextMatchingActivity方法来将动作处理的责任传递给下一个最匹配的应用程序组件,如下片段所示:

 

Intent intent = getIntent();

if (isAfterMidnight)

startNextMatchingActivity(intent);

 

这允许你可以为组件添加额外的条件,限制其超出Intent Filter能力以外的使用。

 

在某些情况下,你的组件可能希望在传递Intent到本地处理器之前能执行一些处理,或者提供用户一个选择。

posted on 2009-07-31 08:55  xirihanlin  阅读(2464)  评论(0编辑  收藏  举报