昨天调试了一下午隐式Intent,用该接收Intent的Activity就是不被系统识别,搞到晚上1点,终于搞定了,现写出来以备忘。
隐式Intent就是不集体指定接收的Activity是哪个类,这样系统就会从安装的程序中去找能够处理该Intent的组件,要实现这一特性需要配置xml文件如下:
要在intent-filter标签中加入以上3项,且必不可少,至少在测试时去掉哪一个都会找不到这个Activity。
发送隐式Intent的代码很简单:
btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
try {
Uri uri = Uri.parse("http://web.neusoft.com");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
} catch (Throwable tb) {
et.setText(tb.getMessage());
}
}
});
这样就能实现隐式Intent的传递啦!