使用Xamarin的Android应用程序,但我认为这适用于非Xamarin。我在进行研究时阅读了这篇文章。
在Android应用程序中,您会注意到AndroidManifest.xml文件包含一个条目,用于配置应用程序的各种属性:图标,标签,主题等。这足以满足您的应用程序需求。实例化后,应用程序将基于清单中配置的值执行必要的初始化,然后将加载定义为视图的Activity以便在启动时加载。
在某些情况下,您可能希望扩展Application类,以便在应用程序启动时执行自定义初始化,或维护全局应用程序状态(例如,在游戏中跟踪多个级别的得分的情况下)。上面显示的示例是某人决定对Application类进行子类化并覆盖它的OnCreate方法的情况,尽管他们没有在override方法中包括任何自定义代码。看起来他们的目的是创建一个全局静态属性,以始终具有对当前加载的Activity的访问权限。
以前,我不需要扩展应用程序类,因此只需按照清单中的说明处理清单即可。但是,最近我需要扩展应用程序类,以便可以为应用程序使用OnCreate事件。
我添加了一个扩展Application的新类,它看起来像这样:
namespace MyApp.Droid
{
public class MyApp : Application
{
public MyApp(IntPtr handle, global::Android.Runtime.JniHandleOwnership transfer)
:base(handle, transfer)
{
}
public override void OnCreate()
{
base.OnCreate();
//Do OnCreate things here.
}
}
}
似乎仅添加此类并不完整。第一个问题,我现在也必须修改清单吗?第二个问题,该类可以具有主题,图标等属性,这些属性已在清单中定义。它们可以保留在清单中吗,还是我需要将它们作为属性移到这个新类中?
这是清单:
<application android:allowBackup="true" android:icon="@drawable/mainapplogo" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">
谢谢!
答案 0 :(得分:2)
第一个问题,我现在还必须修改清单吗?
在这个问题中,如果您的意思是仅仅因为您添加了新的应用程序类,那么就需要对现有清单进行任何更改,那么否就没有这样的要求。
第二个问题,该类可以具有主题,图标等的属性,这些属性已在清单中定义。它们可以保留在清单中吗,还是我需要将它们作为属性移到这个新类中?
Android清单主题和其他所有内容将保留在那里,Android应用程序类和AndroidManifest.xml可独立工作,因此添加扩展的应用程序类无需对清单文件进行任何更改,反之亦然。
祝你好运
如有查询,请随时还原
更新
请确保您的应用程序类在类名顶部具有[Application]
属性
#if DEBUG
[Application(Debuggable=true)]
#else
[Application(Debuggable = false)]
#endif
public class MyApp: Application
{