从图书馆项目到主项目的意图

时间:2013-05-09 09:01:50

标签: android android-intent android-library

当我尝试使用意图从主项目传递到库项目时,它可以正常工作,但是.....当我尝试从库项目到主项目,它不承认主项目中的类

我尝试在我的图书馆项目中写下这个意图:

Intent intent = new Intent(this,com.example.uploadvideo.class);
startActivity(intent);

我在主项目和图书馆项目的清单中添加了我想要连接的两个活动。

enter image description here

3 个答案:

答案 0 :(得分:4)

图书馆项目不了解主要项目。 首选的解决方案是使用动作而不是尝试直接在intent中加载类。如果您想重新使用该库,这也将为您提供更大的灵活性。

所以图书馆会这样做

Intent intent = new Intent("com.example.action_video_upload");
intent.setPackage(mContext.getPackageName()); // only deliver to host app

并且主项目将使用

在清单中注册该意图
<intent-filter . . . >
    <action android:name="com.example.action_video_upload" />
</intent-filter>

可在此处找到更多信息:developer.android.com

答案 1 :(得分:2)

图书馆计划包含可在Android项目中引用的可共享的Android源代码和资源。当您拥有要重用的公共代码时,这非常有用。库项目无法安装到设备上,但是,它们会在构建时被拉入.apk文件。

换句话说,图书馆项目将被重新引用。

从库中调用主项目的意图是有意义的。

实际上,渲染库项目效率低,无法处理当前主项目以外的项目。

答案 2 :(得分:1)

开始下一个活动:

Intent intent = new Intent(this,com.example.UploadVideo.class);
startActivity(intent);

因为目前您在第二个参数中将错误的Activity名称传递给Intent构造函数