Mam następujące klasy aplikacji dla mojej aplikacji. Po uruchomieniu aplikacji chcę pobrać ustawienia z preferencji i uruchomić usługę w tle.Wyścig między aplikacją onCreate i załadowanymi zasobami?
public class MyApplication extends Application {
public void onCreate() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String key = getResources().getString(R.string.prefkey_updateinterval);
...
}
to normalnie działa dobrze, ale od czasu do czasu, gdy zaczyna swój program od Zaćmienie "Run" otrzymuję ten błąd:
10-10 08:25:47.016: E/AndroidRuntime(26402): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f0a0004
10-10 08:25:47.016: E/AndroidRuntime(26402): at android.content.res.Resources.getText(Resources.java:216)
10-10 08:25:47.016: E/AndroidRuntime(26402): at android.content.res.Resources.getString(Resources.java:269)
10-10 08:25:47.016: E/AndroidRuntime(26402): at com.karwosts.MyApp.PortfolioStore.onCreate(PortfolioStore.java:40)
10-10 08:25:47.016: E/AndroidRuntime(26402): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
10-10 08:25:47.016: E/AndroidRuntime(26402): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3395)
Identyfikator ten jest z mojego R.java:
public static final int prefkey_updateinterval=0x7f0a0004;
Ponieważ to działa dobrze przez większość czasu, muszę założyć, że istnieje jakiś rodzaj wyścigu pomiędzy onCreate i ładowanymi zasobami?
Czy w takim przypadku zaleca się, aby nie czytać zasobów w aplikacji onCreate?
Jeśli tak, czy istnieje lepsze miejsce do zainicjowania usługi po uruchomieniu aplikacji?
Zawsze możesz po prostu zainicjować 'Service' w głównej aplikacji' Activity' ... dzięki temu unikniesz potrzeby podklasy "Application". –