I was also considering a service for my app, but reading this thread i
have second thoughts... Basically, all i want is a function to be
called at a preset time (every day). What's the recommended way of
doing this without a service?

Thanks,
Teo

On Aug 4, 2:09 am, Mark Murphy <mmur...@commonsware.com> wrote:
> R Ravichandran wrote:
> > Thanks Mark. Actually the code I posted missed out the 'onStart' method
> > details that I actually tried. Here is the actual 'onStart' method of
> > the MyService class I used where I create the thread and starting it.
>
> >     @Override
> >     public void onStart(Intent intent, int startId) {
> >         System.out.println ("MyService  ))))))))))))))))))))))))))");
> >         super.onStart(intent, startId);
> >         Thread t = new Thread(this);
> >         t.start();
> >     }
>
> > I modified the run method I put some System.out. statement inside a
> > while(true) loop. The idea was to keep this service running as long as
> > the device is on. But it looks like the system is sending a SIG 9 to
> > kill the process (process id 697) for the 'service'. Here is the logcat
> > lines that I see.
>
> > D/installd(  557): DexInv: --- BEGIN '/data/app/vmdl51510.tmp' ---
> > I/System.out(  697): =====>: inside the run method....Count = 49
> > I/System.out(  697): =====>: inside the run method....Count = 50
> > D/dalvikvm(  722): DexOpt: load 41ms, verify 52ms, opt 1ms
> > D/installd(  557): DexInv: --- END '/data/app/vmdl51510.tmp' (success) ---
> > D/PackageManager(  583):   Services: com.bn.InStoreWifiConnectivityManager
> > D/PackageManager(  583):   Receivers: com.bn.InStoreWiFiServiceInitiator
> > I/System.out(  697): =====>: inside the run method....Count = 51
> > I/installd(  557): move
> > /data/dalvik-cache/d...@a...@vmdl51510....@classes.dex ->
> > /data/dalvik-cache/d...@a...@com.bn....@classes.dex
> > D/PackageManager(  583): New package installed in /data/app/com.bn.apk
> > I/System.out(  697): =====>: inside the run method....Count = 52
> > D/AndroidRuntime(  708): Shutting down VM
> > D/dalvikvm(  708): DestroyJavaVM waiting for non-daemon threads to exit
> > D/dalvikvm(  708): DestroyJavaVM shutting VM down
> > D/dalvikvm(  708): HeapWorker thread shutting down
> > D/dalvikvm(  708): HeapWorker thread has shut down
> > D/jdwp    (  708): JDWP shutting down net...
> > D/dalvikvm(  708): VM cleaning up
> > D/dalvikvm(  708): LinearAlloc 0x0 used 627404 of 4194304 (14%)
> > D/ActivityManager(  583): Uninstalling process com.bn <http://com.bn>
> > I/System.out(  697): =====>: inside the run method....Count = 53
> > D/ActivityManager(  583): Force removing process ProcessRecord{436ea918
> > 697:com.bn/10020 <http://com.bn/10020>} (com.bn/10020 <http://com.bn/10020>)
> > W/ActivityManager(  583): Scheduling restart of crashed service
> > com.mypackage/.MyService in 5000ms
> > I/Process (  583): Sending signal. PID: 697 SIG: 9
> > D/ActivityManager(  583): Received spurious death notification for
> > thread android.os.binderpr...@436c0898
> > E/ActivityThread(  583): Failed to find provider info for
> > android.server.checkin
> > W/Checkin (  583): Can't log event SYSTEM_SERVICE_LOOPING:
> > java.lang.IllegalArgumentException: Unknown URL
> > content://android.server.checkin/events
>
> > Looks the process Id 583 is the one that sends SIG 9. Any idea why this
> > is happening?
>
> Possibly, it's because your service crashed:
>
> > W/ActivityManager(  583): Scheduling restart of crashed service
> > com.mypackage/.MyService in 5000ms
>
> Usually, logcat will show a stack trace associated with service crashes.
>
> Bear in mind, though, that your process will be shut down for other
> reasons as well, such as memory reclamation. Keeping a service running
> all the time is an Android "code smell" -- while it is possible, and
> there are occasions when it is the right design, it feels like the vast
> majority of people try it when they don't need it.
>
> Consider using an AlarmManager to start your service on a periodic
> basis, and have the service stopSelf() when the background thread is
> done performing that cycle's worth of work. This will be more reliable
> and, for reasonably long alarm periods, more efficient.
>
> --
> Mark Murphy (a Commons 
> Guy)http://commonsware.com|http://twitter.com/commonsguy
>
> _Beginning Android_ from Apress Now Available!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to