And note that holding a partial wake lock will have a *very* noticeable impact on battery life.
On Fri, Sep 9, 2011 at 3:18 PM, nexbug <gsuku...@gmail.com> wrote: > Get the lock in the oncreate of the service and release it at the end > of the thread > > On Sep 9, 4:41 am, Evelyon <evely...@gmail.com> wrote: > > I have got a service which runs a thread. The thread save some data in > > a file (in the sdcard). When Android goes to sleep, I need that the > > service and the thread continue running. I tried it with a > > PARTIAL_WAKE_LOCK, but it doesn't work; the thread stops while Android > > is sleeping. Other locks like FULL_WAKE_LOCK works, but I need to use > > PARTIAL_WAKE_LOCK because, in the future, in that thread I will read > > from a serial port and I don't care the screen turn off. > > > > I don't know if I have some mistake in the code, or if I don't > > understand the PARTIAL_WAKE_LOCK. Somebody can tell me why my solution > > doesn't wrok? > > > > This is part of the code of the main activity, where the service is > > stareted: > > > > public void onClick(View v) { > > if (SerialPortService.WAKELOCK == null) { > > PowerManager pm = (PowerManager) > > getSystemService(Context.POWER_SERVICE); > > SerialPortService.WAKELOCK = > > pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, > > SerialPortService.WL_TAG); > > SerialPortService.WAKELOCK.acquire(); > > startService(new Intent(getApplicationContext(), > > SerialPortService.class)); > > } > > } > > > > This is the code of the service: > > > > public class SerialPortService extends Service { > > > > public static String WL_TAG = "serial_port_wl_tag"; > > public static PowerManager.WakeLock WAKELOCK = null; > > private BufferedWriter out = null; > > > > public IBinder onBind(Intent intent) { > > return null; > > } > > > > public void onCreate() { > > super.onCreate(); > > try { > > File root = Environment.getExternalStorageDirectory(); > > if (root.canWrite()){ > > File dataFile = new File(root, "batterytest.txt"); > > FileWriter dataFileWritter = new > > FileWriter(dataFile); > > out = new BufferedWriter(dataFileWritter); > > } > > } catch (IOException ioe) { > > Log.d("TEST", "Could not open file " + > > ioe.getMessage()); > > } > > readThread = new ReadThread(); > > readThread.start(); > > } > > > > public void onDestroy() { > > if (readThread != null) readThread.interrupt(); > > WAKELOCK.release(); > > WAKELOCK = null; > > try { > > out.close(); > > } catch (IOException ioe) { > > Log.d("TEST", "Could not close file " + > > ioe.getMessage()); > > } > > super.onDestroy(); > > } > > > > private class ReadThread extends Thread { > > public void run() { > > super.run(); > > while (!isInterrupted()) { > > try { > > Thread.sleep(5000); > > if (out != null) { > > Calendar now = Calendar.getInstance(); > > out.write(now.getTime().toString()); > > out.newLine(); > > } catch (IOException ioe) { > > Log.d("TEST", "Could not read file " + > > ioe.getMessage());} > > return; > > } catch (InterruptedException e) { > > return; > > } > > } > > } > > > > } > > > > } > > -- > 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 > -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- 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