MAUI - 生命周期方法不再在 BaseActivity 中工作

问题描述 投票:0回答:2

我正在将应用程序从 Xamarin.Android 迁移到 MAUI。我在所有生命周期方法中都遇到错误。例如:

  • 受保护的重写 void OnPause()
  • 受保护的覆盖无效 OnCreate(捆绑保存实例状态)
  • 受保护的覆盖无效 OnResume()

错误CS0115“BaseActivity.OnPause()”:找不到合适的方法 覆盖 AndroidAppCore (net8.0-android)

在 Xamarin.Android 中,我在 BaseActivity.cs 中没有收到任何这些错误,但在 MAUI 中却收到了 生命周期方法在我的 MAUI 中的 LoginActivity 中工作

活动/基础/BaseActivity.cs

namespace Common
{
    public abstract class BaseActivity : ISessionExpired, IPBottomNavBarIcon
    

活动/登录/LoginActivity.cs

namespace PApp
{
    [Activity]
    public class PatientLoginActivity : Common.BaseActivity

问题:我在 BaseActivity 中缺少什么?

xamarin.android maui
2个回答
0
投票

您的 BaseActivity 不继承自任何标准 Android Activity,因此会出现错误。

例如应该是

使用AndroidX.AppCompat.App;

[活动(标签=“BaseActivity”)]

公共类BaseActivity:AppCompatActivity {

}


0
投票

从文档App生命周期,我们可以知道:

.NET 多平台应用程序 UI (.NET MAUI) 应用程序通常有四个 执行状态:

not running
running
deactivated
stopped
。 。网 MAUI 在
Window
类上引发跨平台生命周期事件 应用程序从非运行状态转换为运行状态, 运行状态到停用状态,停用状态到 停止状态,停止状态到运行状态,以及 停止状态到非运行状态。

并且

Window
类定义了以下跨平台生命周期事件:
Created
Activated
Deactivated
Stopped
Resumed
Destroying
。 这些跨平台事件映射到不同的平台事件,下表显示了这种映射:

所以,你根本不需要重新定义生命周期,你可以根据需要使用这些事件。

© www.soinside.com 2019 - 2024. All rights reserved.