2017-03-15 64 views

回答

1

可以在android中两次扩展应用程序类并在应用程序中有两个孩子吗?

你只能有一个注册Application子在<application>元素的android:name属性。欢迎您随意创建Application的许多子类,但只会使用一个子类。但是,欢迎您有MyApp延伸Application,有MyOtherApp延伸MyApp,并在清单中注册MyOtherApp

而且也是为什么我们需要它

几个应用程序需要它。引用the documentation,“通常不需要继承应用程序”。

扩展它的目的是什么?

如果您有需要,每次Android的叉子要执行的过程中为你的应用程序逻辑,Application是触发逻辑一个共同的地方。例如,大多数崩溃日志记录库(例如ACRA)都可以在Application子类中配置它们,以便它们可以处理应用程序中其他任何地方的崩溃,适用于您的每个进程。

+0

谢谢你的回答。这个问题突然出现在我的脑海里,因为我看到了两个例子;一个用来检查互联网连接,另一个用来查看如何使用排球库。所以根据你的回答,这是否意味着我可以将示例中的Application子类合并到一个类中,以便在我的项目中使用这两个示例? – Sammie

+0

@Sammie:原则上,当然。我不能排除那些会阻止他们合并的子类之间的某些冲突,但OTOH我想不出会发生这种情况的场景。 – CommonsWare

0

是的,这是可能的。扩展类的原因是重用父类中编写的代码并扩展其功能。

+0

现在,我敢肯定,你只能有每个应用程序类的一个实例,所以我不能确认这是个好主意。 –

1

你想要类似这样的东西吗?

MyApp extends Application 
MySecondApp extends MyApp 

这是可能的。这有几个用例。例如,为您的应用程序定义一个应用程序,但为特定的构建类型或产品风格(例如调试)覆盖它。或者你(安卓)测试自定义应用程序:

MyApp extends Application 
MyDebugApp extends MyApp 
MyTestApp extends MyApp/MyDebugApp 

定义每个应用程序类中,根据AndroidManifest:

MyApp => main package 
MyDebugApp => debug package 
MyTestApp => androidTest package 
相关问题