android – 多个活动竞争一个意图

android – 多个活动竞争一个意图,第1张

概述我有一个面试问题….. 当有多个活动竞争执行intent时,如何指定从隐式intent启动哪个Activity,而无需用户干预. 我对这个问题的回答是在每个活动中使用适当的意图过滤器,但这听起来不对. 提前致谢! 创建Intent时,您可以传递显式组件名称.即班级名称.现在只有该组件才会收到意图. 例: Intent myIntent = new Intent(getApplicationCont 我有一个面试问题…..

当有多个活动竞争执行intent时,如何指定从隐式intent启动哪个Activity,而无需用户干预.

我对这个问题的回答是在每个活动中使用适当的意图过滤器,但这听起来不对.

提前致谢!

解决方法 创建Intent时,您可以传递显式组件名称.即班级名称.现在只有该组件才会收到意图.

例:

Intent myIntent = new Intent(getApplicationContext(),requiredActivity.class);startActivity(myIntent);

如果您没有指定确切的组件,AndroID将巧妙地让用户选择一个处理意图的组件.

例:

Intent myIntent = new Intent(Intent.ACTION_VIEW);    startActivity(myIntent);

如果你想通过所有处理意图的组件,你自己而不是让androID给用户显示选择,你也可以这样做:

例:

Intent myIntent = new Intent(Intent.ACTION_VIEW);    List<ResolveInfo> infoList = getPackageManager().queryIntentActivitIEs(myIntent,0);    for (ResolveInfo ri : infoList){        ActivityInfo ai = ri.activityInfo;        String packagename = ai.packagename;        String componentname = ai.name;       // you can pick up appropriate activity to start        // if(isAGoodMatch(packagename,componentname)){       //     myIntent.setComponent(new Componentname(packagename,componentname));       //     startActivity(myIntent);       //     break;       // }    }

上面代码我有六个活动匹配:

总结

以上是内存溢出为你收集整理的android – 多个活动竞争一个意图全部内容,希望文章能够帮你解决android – 多个活动竞争一个意图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129939.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存