即使Activity存在,ActivityNotFound也是如此

时间:2012-09-12 19:50:30

标签: android exception android-intent start-activity

  

可能重复:
  Intent for editing plain text file with the installed file editor (if any)

我正在尝试打开一些已下载的文本文件。当我以意图启动活动时,它会给出ActivityNotFound异常。

try {
    Uri path = Uri.parse(path+"/sampletext.txt");
    Intent intent = new Intent(Intent.ACTION_VIEW);
    PackageManager packageManager = ctx.getPackageManager();
    intent.setType("text/plain") ;
    List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    if (list.size() > 0 ) {
        intent.setDataAndType(path, "text/plain");
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        ctx.startActivity(intent) ;
    } 

} catch (Exception e){
    e.printStackTrace() ;
}

当我调试时,我发现list.size是1.

我还缺少其他信息吗?

任何一点都可以帮助我。

感谢。

1 个答案:

答案 0 :(得分:2)

ActivityNotFound当清单文件中没有声明匹配活动或由另一个应用程序注册为共享活动时,通常会遇到异常。

您可能需要修改路径:

Uri path = Uri.parse("file://" + path + "/sampletext.txt");

更好的方法是使用便捷方法:

Uri data = Uri.fromFile(file);

但您需要创建一个File对象才能使用该方法