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
-~----------~----~----~----~------~----~------~--~---

Reply via email to