I want to use MainActivity.Instance
in App class to get the height and width of the device. But in MAUI application, App class logic is executing before MainActivity
class execution. So I’m getting Mainactivity.Instance
as null.
Below are my classes. Please suggest
MainApplication class:
public class MainApplication : MauiApplication
{
public MainApplication(nint handle, JniHandleOwnership ownership) : base(handle, ownership)
{
}
protected override MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder.UseMauiApp<App>().UseMauiCommunityToolkit();
return builder.Build();
}
}
MainActivity class:
public class MainActivity : global::Microsoft.Maui.MauiAppCompatActivity
{
internal static MainActivity Instance { get; private set; }
protected override void OnCreate(Bundle savedInstanceState)
{
try
{
Instance = this;
base.OnCreate(savedInstanceState);
}
catch (Exception ex)
{
ExceptionLogger.LogErrorAsync(ex);
}
}
}
Logic calling MainActivity.Instance in App class:
public int ScreenWidth
{
get
{
var density = MainActivity.Instance.Resources.DisplayMetrics.Density;
return Convert.ToInt32(_screenWidth / density);
}
}
I tried above logic but it did not work. Please suggest.