从清单扩展适用于OnCreate不匹配的Android应用程序类

时间:2019-02-21 17:10:24

标签: android xamarin xamarin.android

使用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">

谢谢!

1 个答案:

答案 0 :(得分:2)

  

第一个问题,我现在还必须修改清单吗?

在这个问题中,如果您的意思是仅仅因为您添加了新的应用程序类,那么就需要对现有清单进行任何更改,那么就没有这样的要求。

  

第二个问题,该类可以具有主题,图标等的属性,这些属性已在清单中定义。它们可以保留在清单中吗,还是我需要将它们作为属性移到这个新类中?

Android清单主题和其他所有内容将保留在那里,Android应用程序类和AndroidManifest.xml可独立工作,因此添加扩展的应用程序类无需对清单文件进行任何更改,反之亦然。

祝你好运

如有查询,请随时还原

更新

请确保您的应用程序类在类名顶部具有[Application]属性

#if DEBUG
[Application(Debuggable=true)]
#else
[Application(Debuggable = false)]
#endif

public class MyApp: Application
 {