我正在将我的 Xamarin.Android 应用程序迁移到 MAUI。在另一个 SO 上,有人提到 PackageManager 需要被替换。所以我将代码更改为:
var component = new ComponentName(this, this.Class);
var activityInfo = PackageManager.GetActivityInfo(component, 0);
致:
var myCrrentActivity = MauiApplication.Current.GetActivity();
var component = new ComponentName(myCrrentActivity, myCrrentActivity.Class);
但是 MauiApplication.Current.GetActivity() 不起作用。当它到达下一行时它已为空。我尝试在不同的活动中应用此方法,但得到了相同的结果。
这是在我的 BaseActivity 中:
[Activity(Label = "BaseActivity")]
public class BaseActivity : AppCompatActivity, ISessionExpired, IPBottomNavBarIcon
我错过了什么?
如果我理解正确并购买 Maui,您的意思是 .NET Maui 跨平台,那么要获取当前活动,您需要查看 ApplicationModel 的平台类
var currentActivity = Microsoft.Maui.ApplicationModel.Platform.CurrentActivity