有没有办法动态添加或删除活动类别?

时间:2015-12-30 02:30:35

标签: android

我正在使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="container"> <span class="arrow hide"> <i class="fa fa-chevron-left arrow-left"></i> </span> <div class="slider"> <img src="1.jpg"> <img src="2.jpg"> <img src="3.jpg"> <img src="4.jpg"> <img src="5.jpg"> </div> <span class="arrow"> <i class="fa fa-chevron-right arrow-right"></i> </span> </div>动态决定要在列表中显示哪个活动。

LauncherActivity

@Override protected Intent getTargetIntent() { targetIntent.addCategory(xxx_category1); targetIntent.addCategory(xxx_category2); ......... targetIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); return targetIntent; } 使用特定类别的意图来过滤掉不需要的活动。 但是,这些类别是在xml中预定义的,并且活动必须适合所有类别(不是&#34;或&#34;但是&#34;和#34;所有类别),使其符合使{{1}的条件灵活性较差。

所以我想知道有没有办法动态添加或删除活动类别? 非常感谢!

1 个答案:

答案 0 :(得分:1)

activity-alias有助于满足动态“编辑”活动的需要。通过使用别名而不是实际活动,您可以使用多个配置创建多个别名。使用您想要提供的每个可能配置的别名,您可以根据需要启用/禁用别名,从而添加/删除各种视图中的图标,如系统应用程序启动器。

活动别名

  

别名将目标活动表示为独立实体。它可以有自己的一组intent过滤器,而不是目标活动本身的intent过滤器,它们确定哪些意图可以通过别名激活目标以及系统如何处理别名。

在您的情况下,您似乎想要为要击中的每个类别配置添加别名。我相信别名在这种情况下应该运作良好。我还注意到动态配置,因为我不是肯定的我完全理解你的问题所以如果我误解它可能会增加清晰度。

http://developer.android.com/guide/topics/manifest/activity-alias-element.html

编辑别名

  

设置包组件(活动,接收者,服务,提供者)的启用设置。此设置将覆盖可能已由其清单中的组件设置的任何已启用状态。

http://developer.android.com/reference/android/content/pm/PackageManager.html#setComponentEnabledSetting(android.content.ComponentName, int, int)