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+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
No comments:
Post a Comment