Ormlite внутри Intentservice — ClassCastException

Я пытаюсь использовать Ormlite для обработки базы данных из службы намерений. Я читал об использовании приложения в качестве подкласса. Я пробовал следующее

Класс приложения:

 public class MyApplication extends Application {
    private volatile DatabaseHelper databaseHelper = null;

    @Override
    public void onCreate() {
        super.onCreate();
    }


    public DatabaseHelper getHelper() {
        if (databaseHelper == null) {
            databaseHelper = OpenHelperManager.getHelper(this, DatabaseHelper.class);
        }
        return databaseHelper;
    }
}

В службе намерений я определил:

private DatabaseHelper databaseHelper;

И в методе onHandleIntent() службы намерений я пробовал:

    databaseHelper = ((MyApplication) getApplicationContext()).getHelper();

Однако я получаю ClassCastException, от Application до MyApplication

Может кто-нибудь объяснить мне, что я делаю неправильно?


person user1851212    schedule 20.06.2014    source источник
comment
Где код ормлайта??? Я не думаю, что вам нужно это делать, если вы используете ormlite   -  person Pankaj Kumar    schedule 20.06.2014
comment
@PankajKumar Я использую Ormlite внутри действий, но действия должны расширять OrmLiteBaseActivity‹DatabaseHelper›. Это решение необходимо для того, чтобы заставить его работать из службы намерений.   -  person user1851212    schedule 20.06.2014


Ответы (1)


Нашел проблему. Я объявлял приложение в манифесте отличным от моего основного приложения. Мне нужно было изменить основное приложение в AndroidManifest.xml. Я указал основное приложение на пользовательское приложение (MyApplication), которое я создал. Добавьте это:

<Application android:name=".MyApplication">
person user1851212    schedule 21.06.2014