Вы можете рассмотреть глобальный ApplicationContext
, который может служить вашей цели для загрузки объекта DataHolder
. Обычно я не использую такие контексты, однако, по моему мнению, ваша ситуация имеет смысл использовать глобальный контекст приложения.
Чтобы достичь этого, вы можете рассмотреть возможность использования следующего класса в вашем проекте.
import android.content.Context;
import android.support.multidex.MultiDexApplication;
public class MyApplication extends MultiDexApplication {
private static MyApplication myApplicationInstance;
public static MyApplication getMyApplicationInstance() {
return myApplicationInstance;
}
@Override
public void onCreate() {
super.onCreate();
myApplicationInstance = this;
}
public static Context getAppContext() {
return getMainApplicationInstance().getApplicationContext();
}
}
И добавьте этот класс Application
к вашему AndroidManifest.xml
под тегом application
, как показано ниже.
<application
android:name=".MyApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<!-- Your activity declarations go here-->
</application>
Следовательно, вместо передачи Context
, вы можете получить контекст, предоставленный из одного пробела и, следовательно, улучшить структуру данных. Надеюсь, это поможет!