Нулевой указатель при расширении приложения Android - PullRequest
1 голос
/ 06 ноября 2011

Я экспериментировал с расширением Application, чтобы быстро овладеть объектом Application Context. У меня есть такой класс:

public class PageMonitorApplication extends Application
{
    @Override
    public Context getApplicationContext()
    {
        return super.getApplicationContext();
    }
}

И мой манифест включает в себя:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".PageMonitorApplication">

Однако при создании экземпляра PageMonitorActivity и вызове getApplicationContext() я получаю исключение нулевого указателя. Во время отладки затмения и проверки экземпляра PageMonitorActivity я вижу, что base=null.

Может кто-нибудь посоветовать, что не так?

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

super.getApplicationContext() возвращает null, потому что PageMonitorApplication - это контекст приложения. Вы должны проверить, возвращает ли getApplicationContext 1007 *, и если да, просто используйте Context, который у вас уже есть.

Чтобы получить ссылку на PageMonitorApplication, позвоните getApplicationContext по текущему Activity или Service (или другому Context, который у вас может быть).

0 голосов
/ 06 ноября 2011

Внутри любого действия вы можете напрямую получить доступ к объекту ApllicationContext , используя getApplicationContext () . Нет необходимости создавать и экспериментировать с использованием класса Application.

...