URLSpan在api<23出现ActivityNotFoundException

URLSpan在6.0以下如果点击之后为找不到浏览器,就会报ActivityNotFoundException

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://www.baidu.com(has extras) }
  at android.app.Instrumentation.null checkStartActivityResult(null)(Instrumentation.java:1781)
  at android.app.Instrumentation.null execStartActivity(null)(Instrumentation.java:1501)
  at android.app.Activity.null startActivityForResult(null)(Activity.java:3788)
  at android.support.v4.app.BaseFragmentActivityApi16.void startActivityForResult(android.content.Intent,int,android.os.Bundle)(BaseFragmentActivityApi16.java:54)
  • 源码

    //源码5.1.0
     @Override
    public void onClick(View widget) {
        Uri uri = Uri.parse(getURL());
        Context context = widget.getContext();
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
        context.startActivity(intent);
    }
    
    //6.1.0
     @Override
    public void onClick(View widget) {
        Uri uri = Uri.parse(getURL());
        Context context = widget.getContext();
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
        try {
            context.startActivity(intent);
        } catch (ActivityNotFoundException e) {
            Log.w("URLSpan", "Actvity was not found for intent, " + intent.toString());
        }
    }
    
  • 解决办法

    URLSpan urlSpan;
        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.M) {
            urlSpan = new URLSpan(uri);
        }else {
            urlSpan=new URLSpan(uri){
                @Override
                public void onClick(View widget) {
                    try {
                        super.onClick(widget);
                    }catch (ActivityNotFoundException e){
                        e.printStackTrace();
                    }
                }
            };
        }
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,568评论 0 17
  • 本人初学Android,最近做了一个实现安卓简单音乐播放功能的播放器,收获不少,于是便记录下来自己的思路与知识总结...
    落日柳风阅读 19,233评论 2 41
  • ¥开启¥ 【使用jni实现Tost】 〖2017-08-20 22:15:04〗 《在xx.cpp中写入以下代码€...
    小菜c阅读 901评论 0 1
  • Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要。 一、什么是Intent...
    困惑困惑困惑阅读 1,551评论 0 0
  • 后村,位于石塔山腹中的一个山坳里,隶属于建瓯县的一个自然村庄。村庄不大,却分为上后村和下后村两个居住地,上后村依山...
    军中曙光阅读 1,124评论 92 113