android - 在后台运行的 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);
}
}
即使不需要,我是否也必须创建一个活动?
解决方案
为了让用户启动您的应用程序,您必须至少有一个Activity
,并且它必须在清单中有一个 ACTION=MAIN 和 CATEGORY=LAUNCHER 的条目,以便它显示在主屏幕上。
如果用户无法手动启动您的应用程序,则该应用程序将无法启动,并且不会运行任何后台组件(Service
、BroadcastReceiver
等)。
该Application
实例仅在 Android 创建操作系统进程来托管您的应用程序时创建,并且仅当用户在安装后至少手动启动您的应用程序一次时才会发生这种情况。
推荐阅读
- db2 - DB2 - 字符串操作
- python - 如何使用 oop 将方法的数据传递给其他人,例如使用 python 中的数值方法
- c# - UWP 理想线程数
- db2 - db2 sql在使用min时不返回最小值
- javascript - API 调用有效,然后分派返回它不是函数
- javascript - JavaScript:如何使用 innerHTML 在多列中呈现数据
- sql - 即使不存在数据,也显示每个分区的所有类别
- python - 从索引列表访问多维 np.array 的元素
- twitter-bootstrap - Twitter Bootstrap,将第三个 md-6 列集中在中型设备上
- kubernetes - Terraform dial tcp 192.xx.xx.xx:443: i/o timeout error