首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

小弟我能使用这个Intent吗

2012-07-01 
我能使用这个Intent吗?我能使用这个Intent吗?  Android提供了一个非常强大且易于使用的消息类型:Intent。你

我能使用这个Intent吗?
我能使用这个Intent吗?
  Android提供了一个非常强大且易于使用的消息类型:Intent。你可以使用Intent来将应用程序变成一个高级的库,而且可以使代码模块化并可重用。例如,Android Home画面和AnyCut应用程序,使用Intent来创建快捷方式。
  能够使用这么低耦合的API固然很好,但是,无法保障你发出的Intent能够被其它应用程序接收。这种情况一般在第三方程序中发生,像Panoramio和它的RADAR Intent。
  这篇文章将描述一个技巧,通过这个技巧可以判断出系统中是否有应用程序能响应你想使用的Intent。下面的例子给出了一个辅助的方法,它能通过Package Manager查询系统中是否有app能响应特定的Intent。你的应用程序程序可以传入一个Intent到这个方法中,然后,显示或隐藏用户可能会去触发这个Intent的用户选项(举例)。

@Overridepublic boolean onPrepareOptionsMenu(Menu menu) {    final boolean scanAvailable = isIntentAvailable(this,        "com.google.zxing.client.android.SCAN");    MenuItem item;    item = menu.findItem(R.id.menu_item_add);    item.setEnabled(scanAvailable);    return super.onPrepareOptionsMenu(menu);}

  在这个例子中,如果Barcode Scanner应用程序未安装的话,菜单项是置灰的。
  另外,简单一些的方式是调用startActivity()时捕获ActivityNotFoundException异常,但这种方式只能在问题发生时进行处理,而不能事先相应地更新UI,且不能阻止用户做无用的动作。这里描述的技巧还可以在启动的时候询问用户是否要安装缺少的Package,然后,通过相应的URI,引导用户去Android Market下载。

热点排行