the docs
我们看到我们能够通过工厂方法提供活性。
因此,我正在研究一个解决方案,我可以采取一个活动,并装饰它的功能上。但我不拥有这些活动。我只知道一些名字。这就是我目前所拥有的:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
AppComponentFactory.instantiateApplication(classLoader, SomeoneElsesActivity.class.name)

我将在自己的活动中调用此函数来打开someonelsactivity.class。但我不清楚如何添加额外的功能。活动打开后,我是否只生成一个类似intent service的后台服务?
如果我能使用包装器,有没有办法禁止其他人对我的活动这么做?我不希望任何其他开发人员能够将我的活动和功能包装起来并再次调用它。

最佳答案

更新2018-06-03:AppComponentFactory在p dp2中工作。
从我们看到的文档中,我们可以通过工厂方法提供活动性。
更重要的是,您可以通过AppComponentFactory在清单中注册android:appComponentFactory。然后your process crashes, because AppComponentFactory will not be working until the next developer preview
我将在自己的活动中调用此函数以打开someonelsactivity.class
afaik,这不是你使用AppComponentFactory的方式。AppComponentFactory提供用于创建活动实例的框架回调。
如果我能使用包装器,有没有办法禁止其他人对我的活动这么做?
不要运送图书馆。欢迎应用程序开发人员在其应用程序的上下文中执行他们想要的任何操作。
如果你指的是有人重新打包你的应用程序,他们无论如何都可以这么做-这只是让工作的一个方面更容易。原则上,您可以从活动的零参数构造函数中检查Java调用堆栈,尝试确定是否有人在使用AppComponentFactory,然后采取步骤。我不知道从长远来看这有多实际…尤其是因为AppComponentFactory似乎不起作用。

10-06 04:56