首页 > 解决方案 > 在后台运行的 Android 应用不需要 Activity

问题描述

运行不需要 Activity 并在后台运行的 Xamarin Android 应用时,Visual Studio 中发生错误。

无可启动活动:此项目不包含任何标记为 MainLauncher 的活动。它已部署到设备,但不会启动任何活动。

要将活动标记为可启动,请使用 MainLauncher = true 向其添加 [Activity] 属性:

[Activity (MainLauncher = true)] 公共类 MyActivity : Activity

下面是我的代码

[Application(Label = "@string/app_name")]
    public class Application : Android.App.Application
    {
        public Application(IntPtr javaReference, JniHandleOwnership transfer)
           : base(javaReference, transfer)
        {
        }

        public override void OnCreate()
        {
            base.OnCreate();

            Xamarin.Essentials.Platform.Init(this);      
            Intent oaServiceIntent = new Intent(this, typeof(MainApplicationService));
            StartService(oaServiceIntent);
        }
}

即使不需要,我是否也必须创建一个活动?

标签: androidxamarinandroid-activityxamarin.androidandroid-service

解决方案


为了让用户启动您的应用程序,您必须至少有一个Activity,并且它必须在清单中有一个 ACTION=MAIN 和 CATEGORY=LAUNCHER 的条目,以便它显示在主屏幕上。

如果用户无法手动启动您的应用程序,则该应用程序将无法启动,并且不会运行任何后台组件(ServiceBroadcastReceiver等)。

Application实例仅在 Android 创建操作系统进程来托管您的应用程序时创建,并且仅当用户在安装后至少手动启动您的应用程序一次时才会发生这种情况。


推荐阅读