First, I'm not entirely sure what you're trying to achieve, but making
your code wake up every 15 seconds might cost your users a lot of
battery life for little result, when the user isn't actively using the
device. If you do some network activity every 15 seconds over a cell
network, you'll only have a few hours of battery life.
You really have two options here:
-if you really want to have a process stick around, you need to have a
Service in that process, so that the system can make the appropriate
decisions when it tries to make space for other applications. When the
process that hosts your service is killed, it'll eventually get
restarted automatically, so you can restart whatever you were doing in
the service's onCreate function. In that case, you'll find that using
a Handler is a much better idea than using Thread.sleep.
-if you can work without necessarily having a process stay up all the
time, you should look at the AlarmManager, which will allow the system
to free the memory associated with your process between ticks.
JBQ
On Jul 13, 7:50 am, "Jaikishan Jalan" <[EMAIL PROTECTED]> wrote:
> Hello,
>
> I have written an intentreceiver which gets launched when the boot has
> completed. In this, I run a thread in the background process which do
> certain task periodically. Here is my piece of code:
>
> public class AddressLogService extends IntentReceiver{
> /* the intent source*/
> static final String ACTION =
> "android.intent.action.BOOT_COMPLETED";
> @Override
> public void onReceiveIntent(Context context, Intent intent) {
> if (intent.getAction().equals(ACTION))
> {
> NewRunnable AddressLog = new NewRunnable(context);
> Thread tr = new Thread(null,AddressLog,"Address Logger");
> tr.start();
> }
> }
>
> private class NewRunnable implements Runnable {
> private Context context;
> // Initializing the Runnable Class
> public NewRunnable(Context c){
> context = c;
> }
> public void run(){
> while(true){
> isServerUp = true;
> if(isServerUp ){
> // Do some processing
> Thread.sleep(15 * 1000);
> }
> }catch(Exception e){}
> }
> }
> }
>
> }
>
> I have included the required receiver details and permission in
> AndroidManifest.xml
> The problem is when I launch my emulator, this thread sometimes run and
> sometime it does not run. I have to try launching the emulator certain times
> before I get this thread running. I check this by checking the server log. I
> am not sure why this is happening. Can any point me out why this is
> happening? Or is anyone can suggest there is any other better way to
> approach this task.
>
> Thanks,
> Jaikishan
--~--~---------~--~----~------------~-------~--~----~
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]
Announcing the new M5 SDK!
http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---