@Michaellux

Как получить MainActivity для Intent, созданного в другом классе Xamarin.Droid проекта?

Я хочу установить будильник для Xamarin.Droid проекта. Для этого использую DependencyService для определения platform-specific функций. Определяю интерфейс с сигнатурой функций

namespace ExampleProgram.Droid
{
    public interface IRunAlarm
    {
        Intent setIntent();
        ...
    }
}


и класс с реализацией.

[assembly: Dependency(typeof(ExampleProgram.Droid.RunAlarm))]
    namespace ExampleProgram.Droid
    {
        public class RunAlarm: MainActivity, IRunAlarm
        {
            public Intent setIntent()
            {
                Intent i = new Intent(this, typeof(AlarmReceiver));
                return i;
            }
            ...
        }
    }


Когда запускаю программу, возникает исключение
Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference


на этой строчке:

Intent i = new Intent(this, typeof(AlarmReceiver));


AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="3" android:versionName="3" package="com.example.exampleprogram">
    <uses-sdk android:minSdkVersion="15" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <application android:label="exampleprogram" android:icon="@drawable/appicon"></application>
</manifest>


Как обработать это исключение и как можно грамотно получить MainActivity в этом случае?
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы