作家
登录

Android必知必会-使用Intent打开第三方应用及验证可用性

作者: 来源: 2017-09-05 08:58:58 阅读 我要评论

  • intent.setComponent(cn); 
  •  
  • if (intent.resolveActivity(getPackageManager()) != null) { 
  •     startActivity(intent); 
  • else { 
  •     //找不到指定的 Activity 
  • 遗憾的是, Intent.resolveActivity() 办法并不克不及剖断此方法所要启动的 Activity 是否存在,如不雅此 Activity 不存在,会报 java.lang.IllegalArgumentException: Unknown component 异常,并导致法度榜样崩溃。

    下面看下 resolveActivity() 的代码,以及它的 类似办法 resolveActivityInfo() :

    1. public ComponentName resolveActivity(PackageManager pm) { 
    2.     if (mComponent != null) { 
    3.         return mComponent; 
    4.     } 
    5.  
    6.     ResolveInfo info = pm.resolveActivity(this, 
    7.         PackageManager.MATCH_DEFAULT_ONLY); 
    8.     if (info != null) { 
    9.         return new ComponentName( 
    10.             info.activityInfo.applicationInfo.packageName, 
    11.             info.activityInfo.name); 
    12.     } 
    13.  
    14.     return null
    15.  
    16. public ActivityInfo resolveActivityInfo(PackageManager pm, int flags) { 
    17.     ActivityInfo ai = null
    18.     if (mComponent != null) { 
    19.         try { 
    20.             ai = pm.getActivityInfo(mComponent, flags); 
    21.         } catch (PackageManager.NameNotFoundException e) { 
    22.             // ignore 
    23.         } 
    24.     } else { 
    25.         ResolveInfo info = pm.resolveActivity(this, 
    26.             PackageManager.MATCH_DEFAULT_ONLY | flags); 
    27.         if (info != null) { 
    28.             ai = info.activityInfo; 
    29.         } 
    30.     } 
    31.  
    32.     return ai; 

    显而易见,我们此方法就是先设置的 ComponentName,所以会直接 return mComponent 给我们,并没有任何剖断的逻辑。相对的, resolveActivityInfo() 则可以进行有效剖断并返回 null。故,我们选择应用 Intent.resolveActivityInfo() 进行此方法下的剖断:


      推荐阅读

      企业需要DCIM工具来做什么?

    现如今,DCIM对象在保障数据中间靠得住和高效地运营中发挥着关键感化,是以买家们应当密切存眷其安排的成长。何谓DCIM?数据中间基本架构治理(DCIM)的定义可能存在多种不合的版本。大年夜更>>>详细阅读


    本文标题:Android必知必会-使用Intent打开第三方应用及验证可用性

    地址:http://www.17bianji.com/lsqh/37130.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)