我正在使用Project A和一个库项目开发我的Android应用程序。这两个项目都有活动。如果我目前在项目A中,那么只需导入它就可以轻松地在库项目中启动一个活动。但是,如果我来自图书馆项目中的活动,我不确定如何在项目A中启动活动。我正在尝试使库项目独立于项目A的包名,因为我将它用于多个应用程序。关于如何做到这一点的任何想法?感谢。
答案 0 :(得分:4)
有一些可能的解决方案。
最好的方法是在您希望其他项目可以访问的活动的Manifest条目中注册intent filter。关于意图过滤器here有一个很棒的教程。
另一种选择是将一个Class传递给库项目,并使用Intent (Context packageContext, Class cls)构造函数创建一个触发并启动活动的意图。然而,使用意图过滤器将是一种更好的实践和学习经验。
祝你好运!答案 1 :(得分:3)
我相信这是最简单的答案:你需要一个存在于库中的对象,你可以在你的项目中扩展它。
想象一下,您的库具有ProjectApplication扩展的LibraryApplication。 LibraryActivity可以调用:
((LibraryApplication)getApplication()).startNewActivity(this, "goHome")
您的ProjectApplication实现了这个新方法:
public void startNewActivity(Context context, String action) {
if("goHome".equals(action)) {
startActivity(context, ProjectHomeActivity.class);
}
}
答案 2 :(得分:1)
您可以将项目添加为外部库。你也可以使用maven来做这类事情。
答案 3 :(得分:0)