动态加载活动

时间:2011-03-13 09:34:12

标签: android dynamic android-activity external loading

有没有办法加载未在我的应用程序清单中明确定义的已安装活动?

3 个答案:

答案 0 :(得分:2)

不确定。您可以启动“图库”来选择这样的照片:

myIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);  
startActivityForResult(myIntent, IMAGE_UPLOAD);

来自manual,我们发现您可以调用两种类型的意图:

  

明确的意图   指定了一个   组件(通过   setComponent(ComponentName)或   setClass(Context,Class)),其中   提供要运行的确切类。   通常这些不包括任何其他   信息,只是一种方式   申请推出各种内部   它作为用户的活动   与应用程序交互。

     

隐含意图尚未指定组件;相反,他们   必须包含足够的信息   系统确定哪个   可用的组件最好运行   为了那个意图。

我正在寻找隐含的意图。这解释得有点低:

  

意图解决机制   基本围绕匹配一个   意图反对所有的    描述   已安装应用程序包(加,   在广播的情况下,任何   BroadcastReceiver对象显式   注册   registerReceiver(广播接收器,   IntentFilter)。)更多细节   可以在文档中找到   IntentFilter类

(我的)。 所以你需要知道一些事情来明确地调用它(比如classname等),或者调用intent,然后你必须知道intent-filter。

我不认为有一种方法可以调用只知道包名称的东西:请注意,您可以拥有一个包含多个包的应用程序,而不是所有包都有活动,更不用说可以运行的活动。

答案 1 :(得分:1)

正如Nanne所说,你可以通过Intent轻松开始一项活动。

以下是系统提供的意图列表:http://developer.android.com/guide/appendix/g-app-intents.html

以下是第三方应用提供的意图列表:http://www.openintents.org/en/registry

答案 2 :(得分:0)

  

有没有办法加载未在我的应用程序清单中明确定义的已安装活动?

如果你真的想说:

  

我的应用程序可以在运行时创建一个Activity类......不知怎的......并启动它?

然后答案是否定的。