मेरे पास मेरे ऐप के लिए निम्न एप्लिकेशन क्लास है। जब एप्लिकेशन शुरू होता है, तो मैं वरीयताओं से कुछ सेटिंग्स प्राप्त करना चाहता हूं और पृष्ठभूमि सेवा शुरू करना चाहता हूं।आवेदन के बीच रेस की स्थिति क्रेट और संसाधनों को लोड किया गया?
public class MyApplication extends Application {
public void onCreate() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String key = getResources().getString(R.string.prefkey_updateinterval);
...
}
यह सामान्य रूप से ठीक काम करता है, लेकिन कभी-कभी जब ग्रहण "रन" से मेरा कार्यक्रम शुरू मैं इस त्रुटि मिलती है:
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)
इस आईडी मेरी R.java से है:
public static final int prefkey_updateinterval=0x7f0a0004;
चूंकि यह ज्यादातर समय ठीक काम करता है, मुझे यह मानना है कि क्रिएट और संसाधनों के बीच कुछ प्रकार की दौड़ की स्थिति है?
यदि ऐसा है, तो क्या यह अनुशंसा की जाती है कि आवेदन पर संसाधनों को पढ़ना न पड़े?
यदि हां, तो एप्लिकेशन लॉन्च होने पर सेवा शुरू करने के लिए कोई बेहतर जगह है?
आप हमेशा अपने ऐप की मुख्य 'गतिविधि' में' सेवा 'शुरू कर सकते हैं ... इससे' एप्लिकेशन' को उपclass करने की आवश्यकता से बचा जाता है। –