我正在将应用程序从 Xamarin.Android 迁移到 MAUI。我在所有生命周期方法中都遇到错误。例如:
错误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 中缺少什么?
您的 BaseActivity 不继承自任何标准 Android Activity,因此会出现错误。
例如应该是
使用AndroidX.AppCompat.App;
[活动(标签=“BaseActivity”)]
公共类BaseActivity:AppCompatActivity {
}
从文档App生命周期,我们可以知道:
.NET 多平台应用程序 UI (.NET MAUI) 应用程序通常有四个 执行状态:
、not running
、running
和deactivated
。 。网 MAUI 在stopped
类上引发跨平台生命周期事件 应用程序从非运行状态转换为运行状态, 运行状态到停用状态,停用状态到 停止状态,停止状态到运行状态,以及 停止状态到非运行状态。Window
并且
Window
类定义了以下跨平台生命周期事件:Created
、Activated
、Deactivated
、Stopped
、Resumed
、Destroying
。
这些跨平台事件映射到不同的平台事件,下表显示了这种映射:
所以,你根本不需要重新定义生命周期,你可以根据需要使用这些事件。