I haven't seen this issue. I get a "real context" by passing the IntentService object as this. Any chance it is time to do a clean build ?
I assume the ThePreferences class is just a simple java class extending java.lang.Object ... Balwinder Kaur Open Source Development Center ·T· · ·Mobile· stick together The views, opinions and statements in this email are those of the author solely in their individual capacity, and do not necessarily represent those of T-Mobile USA, Inc. On Aug 15, 6:27 pm, dapaintballer331 <[email protected]> wrote: > I really don't understand the problem. IN the wakefulIntentService, it > tells me it's casting itself correctly. > > if(!(this instanceof android.content.Context)) > Log.e("fmi","fmi the daemon is NOT a real context!"); > else > Log.e("fmi","fmi the daemon is a real > context!"); > > THe daemon is saying it IS a real context. > Any reason why it's not passing "this" correctly? > > I call "THePreferences prefMan = new ThePreferences(this);" > and the constructor is saying the context passed is both null, and not > a context. > > public ThePreferences(Context context) > { > if(context == null) > Log.e("fmi","fmi PREFERENCES has null context!"); > if(!(context instanceof android.content.Context)) > Log.e("fmi","fmi PREFERENCES doesn't have a real > context!"); > this.context = context; > } > > That is responsible for making the instance variable (this.context) > store a reference. It's logging both messages in the constructor... > > On Aug 11, 6:53 pm, Jason Proctor <[email protected]> > wrote: > > > i have this problem quite a lot -- how to get context when off in > > some callback somewhere. usually i arrange to pass a context in as a > > construction parameter and then provide that for the calls that need > > it. works for me! > > > g'luck > > j > > > >Jason, thanks a lot, it turns out the context is null... See if you > > >can help me... > > > >An Alarm starts a "WakefulIntentService"( made by me, which is used to > > >keep a wakelock). That extends an "IntentService" (made by android). > > >This WakefulIntentService then writes data, passing itself as an > > >argument for the context. > > >I'm guessing IntentServices don't count as a "Context", even though > > >Intents and Services do count. > > > >Any idea how I can get a context by using a static method, or at least > > >get the right FileOutputStream (for the current application)? > > > >I appreciate your help a lot, > > >Brandon Nalls > > > >On Aug 11, 4:54 pm, Jason Proctor <[email protected]> > > >wrote: > > >> ok so if that's throwing a null pointer, then context might be null. > > >> check that? > > > >> >I commented out a lot of code above what I pasted.... if comments > > >> >count as lines, line 39 is "FileOutputStream fOut = > > >> >context.openFileOutput(filename, Context.MODE_PRIVATE);" > > > >> >Never heard of a finally block... it sounds like it isn't getting > > >> >called, i'll look into adding this. > > > >> >I'm positive filename & contents aren't null. > > > >> >On Aug 11, 4:44 pm, Jason Proctor <[email protected]> > > >> >wrote: > > >> >> what is line 39 in your source file? > > > >> >> are the filename and contents non-null? > > > >> >> btw, i'd recommend closing the output stream writer in a finally > > >> >> block. finalizers aren't guaranteed to get called. > > > >> >> >I have two methods, one reads files and one writes the given > > >> string to > > >> >> >a file. > > >> >> >For some reason, the first time the write method works fine, but > > >> after > > >> >> >it writes the first file, any files after that makes it throw a > > >> >> >nullpointerexception. No idea why. The problem is in the writeData > > >> >> >method for sure.... why is it throwing null??? > > > >> >> >Stack dump: > > >> >> >08-10 23:04:43.309: WARN/dalvikvm(687): threadid=17: thread exiting > > >> >> >with uncaught exception (group=0x4000fe70) > > >> >> >08-10 23:04:43.319: ERROR/AndroidRuntime(687): Uncaught handler: > > >> >> >threadIntentService[TheDaemon] exiting due to uncaught exception > > >> >> >08-10 23:04:43.357: ERROR/AndroidRuntime(687): > > >> >> >java.lang.NullPointerException > > >> >> >08-10 23:04:43.357: ERROR/AndroidRuntime(687): at > > >> >> >org.myApp.ThePreferences.writeData(ThePreferences.java:39) > > >> >> >08-10 23:04:43.357: ERROR/AndroidRuntime(687): at > > >> >> >org.myApp.ThePhone.savePhoneToDisk(ThePhone.java:33) > > >> >> >08-10 23:04:43.357: ERROR/AndroidRuntime(687): at > > >> >> >org.myApp.ThePhone.refreshStatus(ThePhone.java:82) > > >> >> >08-10 23:04:43.357: ERROR/AndroidRuntime(687): at > > >> >> >org.myApp.TheDaemon.onHandleIntent(TheDaemon.java:62) > > >> >> >08-10 23:04:43.357: ERROR/AndroidRuntime(687): at > > >> >> >android.app.IntentService$ServiceHandler.handleMessage > > >> >> >(IntentService.java:29) > > >> >> >08-10 23:04:43.357: ERROR/AndroidRuntime(687): at > > >> >> >android.os.Handler.dispatchMessage(Handler.java:99) > > >> >> >08-10 23:04:43.357: ERROR/AndroidRuntime(687): at > > >> >> >android.os.Looper.loop(Looper.java:123) > > >> >> >08-10 23:04:43.357: ERROR/AndroidRuntime(687): at > > >> >> >android.os.HandlerThread.run(HandlerThread.java:60) > > > >> >> >write Method > > > >> >> >public boolean writeData(String filename, String contents) > > >> >> > { > > >> >> > try { > > >> >> > FileOutputStream fOut = > > >> >> >context.openFileOutput(filename, > > >> >> >Context.MODE_PRIVATE); > > >> >> > OutputStreamWriter osw = new > > >>OutputStreamWriter(fOut); > > >> >> > osw.write(contents); > > >> >> > osw.flush(); > > >> >> > osw.close(); > > >> >> > } catch (IOException e) { > > > > >> > e.printStackTrace(); > > >> >> > Log.e("fmi", "fmi throws ioexception in > > >> WRITER"); > > > > >> > return false; > > >> >> > } catch (java.lang.NullPointerException e) { > > >> >> > e.printStackTrace(); > > >> >> > } > > >> >> > return true; > > >> >> > } > > > >> >> >Any idea why it's throwing a null pointer exception? > > > >> >> -- > > >> >> jason.software.particle > > > >> -- > > >> jason.software.particle > > > -- > > jason.software.particle > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

