Jak wiemy, dostawca treści ładuje podczas uruchamiania aplikacji. Ale chcę wykonać pewne operacje przed uruchomieniem dostawcy treści. Jak złapać tę operację? Przed metoda onCreate dostawca treści byłby nazwaćJak można zainicjować dostawcę zawartości?
Odpowiedz
Myślę, że znalazłem rozwiązanie. Ive stworzył moją klasę niestandardowych aplikacji i zastąpiona metodą attachBaseContext
<application android:name=".ApplicationController" ...>
public class ApplicationController extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
// some of your own operations before content provider will launch
}
}
Ale chcę dokonać pewnych operacji przed dostawca treści rozpocznie ... zanim metoda onCreate dostawca treści byłby nazwać
AFAIK, że nie jest to możliwe. onCreate()
z Twojej ContentProvider
będzie pierwszą okazją, musisz uruchomić kod, chwile po procesie jest rozwidlony. To zdarza się jeszcze przed wywołaniem onCreate()
na Application
, jeśli dobrze rozumiem.
jest to bardzo smutne. Ive starał się przesłonić onCreate of application, ale wydaje się, że dostawca treści ładuje przed onCreate of application też. Dziękuję za odpowiedź. – pleerock
Moje rozwiązanie wymaga użycia call(Uri, String, String, Bundle)
API (tak, to nie jest w pełni kompatybilne wstecz). Ale mam rzeczy, które chcę, aby ContentProvider
przygotować, zanim zostaną użyte w moim zastąpieniu tej metody call
. Potem robię getContentResolver().call(BASE_URI, METHOD, null, Bundle.EMPTY)
w moim Application.onCreate()
. Zasadniczo, odradza to, dopóki nie powstanie moje Application
, czego oczekiwaliśmy, że robimy to naturalnie.
- 1. Jak zapytać dostawcę zawartości Android MediaStore, unikając osieroconych obrazów?
- 2. ValidationException: Nie można znaleźć dostawcę domyślnej
- 3. org.hibernate.exception.SQLGrammarException: nie można zainicjować kolekcji
- 4. Nie można zainicjować klasa com.android.build.gradle.AppPlugin
- 5. Nie można zainicjować klasy android.support.design.widget.CoordinatorLayout
- 6. Nie można zainicjować klasy org.eclipse.jst.j2ee.project.facet.IJ2EEFacetConstants
- 7. Jak sfinalizować dostawcę SunPKCS11 po zainicjowaniu?
- 8. Yii2: jak buforować aktywnego dostawcę danych?
- 9. Android rejestrujący dostawcę zabezpieczeń
- 10. Jak poprawnie zainicjować rejestratory?
- 11. php starup sqlsrv nie można zainicjować modułu
- 12. Błąd iskry: Nie można zainicjować klasy org.apache.spark.rdd.RDDOperationScope
- 13. Nie można zainicjować replikę ustawiony w Ubuntu
- 14. java.lang.NoClassDefFoundError: Nie można zainicjować klasy javax.media.jai.JAI
- 15. Jak wdrożyć własnego dostawcę Fakera w Laravel
- 16. Jak podpisać niestandardowego dostawcę zabezpieczeń JCE
- 17. Jak wybrać dostawcę Oracle dla aplikacji .Net?
- 18. PowerShell PackageManagement, jak odinstalować dostawcę pakietów?
- 19. Jak zmienić dostawcę bazy danych w Orchard?
- 20. Jak rozszerzyć lekkiego dostawcę w Chef
- 21. JsonMappingException: nie można zainicjować proxy - brak sesji
- 22. hibernacja: LazyInitializationException: nie można zainicjować proxy
- 23. java.lang.NoClassDefFoundError: Nie można zainicjować klasy java.awt.Toolkit
- 24. Android: "nie można zainicjować silnika wizualizacji"
- 25. Nie można zainicjować serwera proxy - nie Session
- 26. Błąd: nie można zainicjować klasy com.android.sdklib.repositoryv2.AndroidSdkHandler
- 27. php 7 nie można zainicjować sqlsrv
- 28. Przykład dostawcy zawartości i obserwatora zawartości?
- 29. Jak zainicjować zmienną wchar_t?
- 30. Jak findViewById zainicjować widok
To może działać w tej chwili, ale nie wiem, czy będzie niezawodne w różnych wersjach. – CommonsWare
Przeżył przez 17 miesięcy)) Może w funkcji Google dostarczy nam żadnych apis do tej operacji, ale na razie działa. Dziękuję za odpowiedź! – pleerock
To rozwiązanie działa, ale nie jest w pełni funkcjonalne. Na przykład metoda 'Context.getMainLooper()' zwraca 'null' po wywołaniu przed' Application.onCreate() '. – Michael