Devour Problems

I have SO many problems with my THIRD Devour I am not sure where to begin!  Unfortunately you take the phone to Verizon and they look at you like they've never heard of the problems and they definitely do not know how to fix them.  Of course my 30 days are up and I am STUCK.  Here are the top problems:
1. When I receive a text, then reply, my phone basically freezes - I can go back to my Home Page and then the bottom 1/3 of the phone goes black; phone is frozen; the black will go away and I get a Force Close message; hit Force Close; phone still frozen -- after about a minute of this process it will then become unfrozen.  Sometimes the notification text message clears, some times not.
2. Not all contacts update from Gmail to phone -- if I add some one on my phone and then sync the phone to the Gmail acct. it does not transfer to Gmail.
3.  I had pix for almost every contact in my phone.  Now all pix are gone from contacts in my phone yet are still in my Gmail acct. No pix comes up when I receive a phone call or text.  I have tried to go back into a contact and associate a pix with them again and it does not save.  Yet, my speed dial contacts have pictures!
4. Set up contacts for Speed Dial - this is where the pix just showed up . . .  Let's say I had 20 people in Speed Dial - suddenly on a daily basis my phone has started to drop contacts from my Speed Dial list.  At first it was just one contact in position 3 so I added them back - then it started again, this time dropping more to the point where I am down to only 2 contacts in Speed Dial, plus VM.
5. Assigned Ring Tone (song) some times rings, some times doesn't or some times rings for some one else.  I've tried changing to a diff. song, etc. - does not matter.
6. 3 times (days) I have had the phone not ring or vibrate for an incoming call or notification even though everything is set to function properly.  I have also had the phone stay 'lit' meaning it would not go dark / to sleep - had to manually do this to get any battery life out of the phone.  Then all of a sudden it works.
7.  Battery life on this phone STINKS - I have the phone set on the lowest brightness level; quick screen time out; all wireless controls off; Battery set to Battery Saver Mode; Background Data & Auto-Sync off . . . I can make a few quick calls and texts and my phone will need charging mid-day.  Having the phone settings like this sort of defeats the purpose of a Smart-phone when you can't actually use them (e-mail sync, etc).  I def. can not be away from an a/c or vehicle charger a whole day and expect my phone to last.
8. I was advised to get Advanced Task Cleaner Pro - so I do have this.
The above are what I can think of right now that is happening on a regular basis and I find VERY annoying!!  Have thought of switching to the new Droid X but it seems like there is not perfect answer - they all seem to have a quirk or two.  Maybe a BlackBerry?
Maybe this is a Motto-Blur problem??  I am not sure why there is a Motto-Blur - seems like a middle man program that is causing a lot of trouble . . . .   Can some one please advise or point me in a direction???

I already posted this on another forum, but I saw this one had a lot more views.  Basically I just felt like banging my head against a brick wall in front of a much larger audience:
Weird, apparently you and I are the only two people with this issue because the lady I talked to today said this was very rare.  Thankfully I'll be getting a new Devour...again.  I'm sure that will fix the issue.
I think I would be willing to take the abuse, keep sending in phone after phone, if they would just admit that the phone is garbage.  Instead, they act as if my claims are libelous.  When I say things to the extent of, "I've looked at a lot of forums, and I know I'm not the only one with this problem," they said that, "people only complain on those forums."  Well maybe we would stop the complaining if some techie came in and said, "oh, this is a quick fix that really works (and it really worked)," or a manager came in and said, "I'm sorry we backed such a poorly tested phone, what can we do to work with you," or even, "yea, that phone is terrible, sorry for your luck."  When I pointed out the fact that the phone has been released for less than a year, but is already not listed on the Verizon web site, I was told that phones become obsolete, and technology changes rapidly.  That's the best that you could do?  If you're going to lie to me, make it interesting, or so complex that my feeble mind can't quite dissect what you're saying.  But, please, don't insult me by thinking that this simple statement will fool me into thinking that you truly believe that there is nothing wrong with this phone.  Don't tell me that the phone is no longer sold because that's the way technology works.  Me, DEVOUR_BITES, and anybody else who has this phone knows full well that Verizon knows this phone is terrible, and, worst of all, refuses to even admit the slightest possibility that there is a systematic error here.
If anybody was able to finally have they're Devour exchanged without paying full retail for a phone, please let us in on the secret.
If anybody else out there is extremely bored and thoroughly enjoys typing contacts into their phone many, many times over, the Devour is great.  It's got a sweet keyboard that attracted me in the first place.  I've gotten 10x the use out of that than I expected.
Thank you for this ability to rave and rant on my keyboard for some sense of validation, because I'm not getting it from tech. support

Similar Messages

  • E71x problem, and a question about 'physical damag...

    Hiya,
    Soooo I got the E71x in June, and I loved it, until about a month ago, it started frustrating me non stop.
    The phone will tell me that its battery is low after I've charged it completely, and have seen 5 bars worth of power for 30 mins;
    it will turn off without shutting down, without alerting me
    it will freeze, and won't turn off with the power button--the only thing to do is pull the battery out;
    it will tell me the sim card isn't registered and then turn off
    OR
    the screen will go blank, turn white, and display a message that says 'Insert SIM card' when the sim card is already in, and hasn't been moved or anything;
    the phone will die when I try to send text messages, call someone, or the first 30 seconds into a call;
    whenever the phone dies on me, I have to pull the battery out & then turn the phone back on, and when I do so a ghost image of whatever i had been doing before the phone died (the text i was about to send, for instance, or the home screen, or the 'insert sim card' screen) will appear for a second, pixelate, then vanish.
    I called AT&T, they do not believe that it is a charger or battery issue, since I've checked those anyway. My software is up to date, I've tried all the online troubleshooting tips. I've obviously dropped my phone before, who hasn't, but it was never anything *huge*, the phone never turned off because I dropped it, the battery never popped out, etc. It has fallen from my jeans to the floor, for example, that's about it. So there's no physical damage because of that. I have never gotten the phone wet;---the circle on the back of my battery is white, so it hasn't been exposed to liquid or heat or anything extreme. I don't think my warranty would be turned down for physical damage due to the above mentioned.
    However, I have a question if anyone who works for Nokia reads these boards; my parrot removed the 'p' key from the keyboard--just the key, the pad underneath works fine and is untouched, i can still type the letter p and everything--but the 'p' key, just that one, is missing. I can't find it. Would I really be denied my 1 year warranty because of that? is there anyway I can buy a key to replace the 'p' key so that I could send my phone to AT&T? all it would need to be fixed is a tiny dab of glue. That's it. I will be very frustrated if I can't get my phone fixed within warranty because of that key; I would be forced to get another phone, and I don't think my choice would be another Nokia. Please let me know what I can do about this problem, it's getting ridiculous, I can't even answer phone calls without my first rushed sentence being 'my phone might hang up on you but i'll call you back' anymore.
    HELP
    Solved!
    Go to Solution.

    hahaha no, it's not the e71x, it is a piece of popcorn she DEVOURED. She LOVES popcorn. MMMmmmmMMMM she says. Haha.
    @FastTortoise, I think a parrotlet might be a good fit for you, they were my pick because they have the same personality as a parrot (spunky, loving, fun, funny, etc) but they're TINY, and VERY quiet (comparatively::they've got nothing on cats). Check out this site for more info http://www.talkparrotlets.com/forum.php my name on there is brittany_lynn, you might be able to get my email from that site or from this, lemme know if you have ?'s or anything
    P.S. All birds need a cage, a parrotlet just needs a smaller cage.

  • Problem in main vda host: vdadb:sql in maintenance

    Hi, I dont find a way to solve this, the installation went without problems or error messages, but still have this problem, is any of this normal?
    root [ ~ ]# cacaoadm status
    default instance is DISABLED at system startup.
    default instance is not running.
    root [ ~ ]# svcs -a|grep vda
    legacy_run Apr_21 lrc:/etc/rc3_d/S99vda-webadmin-init
    online 8:34:25 svc:/application/database/vdadb:core
    maintenance 8:34:42 svc:/application/database/vdadb:sql
    root [ ~ ]# svcadm clear svc:/application/database/vdadb:sql
    root [ ~ ]# svcs -a|grep vda
    legacy_run Apr_21 lrc:/etc/rc3_d/S99vda-webadmin-init
    online 8:34:25 svc:/application/database/vdadb:core
    offline* 12:34:59 svc:/application/database/vdadb:sql
    root [ ~ ]# svcs -l svc:/application/database/vdadb:sql
    fmri svc:/application/database/vdadb:sql
    name SUNWvda MySQL Cluster and Application
    enabled true
    state maintenance
    next_state none
    state_time Wed May 06 12:35:10 2009
    logfile /var/svc/log/application-database-vdadb:sql.log
    restarter svc:/system/svc/restarter:default
    contract_id
    dependency require_all/none svc:/milestone/network:default (online)
    dependency require_all/none svc:/system/filesystem/local:default (online)
    dependency require_all/refresh svc:/milestone/name-services (online)
    the process wont go up because of this:
    root [ ~ ]# tail -20 /var/svc/log/application-database-vdadb:sql.log
    MGMT_NODE=[0]; NDBD_NODE=[0]; SQL_NODE=[0]; MULTI_HOST_MODE=[0];
    NDBD_CONNECTSTRING=[localhost]; NDBD_INITIAL_ARG=[]; NDBD_NODE_ID=[0];
    Starting the Sun Virtual Desktop Infrastructure Database service:
    - Starting Management Node... Unable to setup port: *:1186!
    Please check if the port is already used,
    (perhaps a ndb_mgmd is already running),
    and if you are executing on the correct computer
    OK
    - Starting Data Node... 2009-05-06 12:35:10 [ndbd] INFO -- Unable to alloc node id
    2009-05-06 12:35:10 [ndbd] INFO -- Error : Could not alloc node id at localhost port 1186: No free node id found for ndbd(NDB).
    error=2350
    2009-05-06 12:35:10 [ndbd] INFO -- Error handler restarting system
    2009-05-06 12:35:10 [ndbd] INFO -- Error handler shutdown completed - exiting
    sphase=0
    exit=-1
    Arguments: [localhost ]...
    Error (255)
    [ May  6 12:35:10 Method "start" exited with status 95 ]
    even after stopping the vda services:
    root [ ~ ]# cacaoadm stop --force
    the process is still there:
    root [ ~ ]# ps -ef|grep vda
    root 27168 1 0 08:34:26 ? 0:14 /opt/SUNWvda/mysql/bin/ndb_mgmd -f /etc/opt/SUNWvda/config.ini
    which is the one who has the port in use:
    root [ ~ ]# pfiles 27168|grep 1186
    sockname: AF_INET 0.0.0.0 port: 1186
    peername: AF_INET 127.0.0.1 port: 1186
    sockname: AF_INET 127.0.0.1 port: 1186
    sockname: AF_INET 129.153.207.114 port: 1186
    sockname: AF_INET 129.153.207.114 port: 1186
    which is respawned by someone:
    root [ ~ ]# kill 27168
    root [ ~ ]# ps -ef|grep vda
    root 11556 1 0 12:48:07 ? 0:00 /opt/SUNWvda/mysql/bin/ndb_mgmd -f /etc/opt/SUNWvda/config.ini
    is all these the "normal" behaviour in the main vda host?
    the secondaries show:
    root [ ~ ]# cacaoadm status
    default instance is ENABLED at system startup.
    Smf monitoring process:
    19625
    19627
    Uptime: 0 day(s), 4:5
    and because of this, I think, I cannot connect to the webpage in the
    main vda host, but can connect to the secondaries.
    is there something I am missing, doing wrong or should be doing in other way?
    thanks in avance
    -Oswaldo

    Neidisch wrote:
    Hola Oswaldo,
    :) hola!!
    >
    That's right. The primary host won't host any other service, unless you execute 'vda-config' a second, which is actually not recommended.
    So, no web UI and no 'vdadb:sql' will be activated; if those services are activated by hand, it may cause unexpected results.
    ok, then svcadm clear/enable vdadb:sql is a no-no ... got it.
    then the cacaoadm status output is correct/fine:
    default instance is DISABLED at system startup.
    default instance is not running.
    Haven't read thoroughly your cloning-related-thread, but it just seems that "something" is devouring memory in your VirtualBox host.
    well, I suspended the use of firefox and signed out as root from the console
    (some time ago now ... ) so the current top output sorted by res size is:
    last pid: 2343; load avg: 0.00, 0.00, 0.00; up 6+21:58:25 09:07:51
    64 processes: 62 sleeping, 1 zombie, 1 on cpu
    CPU states: 99.9% idle, 0.0% user, 0.1% kernel, 0.0% iowait, 0.0% swap
    Memory: 3968M phys mem, 845M free mem, 17G total swap, 17G free swap
    PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND
    725 noaccess 19 59 0 181M 113M sleep 5:08 0.01% java
    447 vboxuser 6 59 0 92M 80M sleep 3:04 0.00% vboxwebsrv
    757 root 11 59 0 39M 30M sleep 0:10 0.00% VirtualBox
    306 daemon 5 59 0 23M 18M sleep 0:11 0.00% nfsmapid
    553 vboxuser 9 59 0 17M 13M sleep 3:55 0.00% VBoxSVC
    7 root 13 59 0 13M 11M sleep 0:14 0.00% svc.startd
    764 root 9 59 0 14M 10M sleep 1:04 0.00% VBoxSVC
    525 root 18 59 0 13M 9084K sleep 0:04 0.00% fmd
    633 root 1 59 0 24M 8708K sleep 3:12 0.00% Xorg
    9 root 15 59 0 8320K 7184K sleep 0:11 0.00% svc.configd
    683 root 1 59 0 11M 7136K sleep 1:16 0.00% dtgreet
    728 webservd 1 59 0 9604K 5020K sleep 0:26 0.00% httpd
    727 webservd 1 59 0 9500K 4896K sleep 0:26 0.00% httpd
    660 webservd 1 59 0 9364K 4776K sleep 0:27 0.00% httpd
    662 webservd 1 59 0 9360K 4768K sleep 0:27 0.00% httpd
    and sorted by mem size is:
    last pid: 2343; load avg: 0.00, 0.00, 0.00; up 6+21:59:46 09:09:12
    64 processes: 62 sleeping, 1 zombie, 1 on cpu
    CPU states: 99.8% idle, 0.0% user, 0.1% kernel, 0.0% iowait, 0.0% swap
    Memory: 3968M phys mem, 845M free mem, 17G total swap, 17G free swap
    PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND
    725 noaccess 19 59 0 181M 113M sleep 5:08 0.01% java
    447 vboxuser 6 59 0 92M 80M sleep 3:04 0.00% vboxwebsrv
    757 root 11 59 0 39M 30M sleep 0:10 0.00% VirtualBox
    633 root 1 59 0 24M 8708K sleep 3:12 0.01% Xorg
    306 daemon 5 59 0 23M 18M sleep 0:11 0.00% nfsmapid
    553 vboxuser 9 59 0 17M 13M sleep 3:55 0.00% VBoxSVC
    764 root 9 59 0 14M 10M sleep 1:04 0.00% VBoxSVC
    525 root 18 59 0 13M 9084K sleep 0:04 0.00% fmd
    7 root 13 59 0 13M 11M sleep 0:14 0.00% svc.startd
    683 root 1 59 0 11M 7136K sleep 1:16 0.00% dtgreet
    2333 root 1 59 0 9772K 2284K sleep 0:00 0.01% sshd
    728 webservd 1 59 0 9604K 5020K sleep 0:26 0.00% httpd
    727 webservd 1 59 0 9500K 4896K sleep 0:26 0.00% httpd
    660 webservd 1 59 0 9364K 4776K sleep 0:27 0.00% httpd
    662 webservd 1 59 0 9360K 4768K sleep 0:27 0.00% httpd
    being this one the mem-eater:
    noaccess 725 1 0 Apr 30 ? 5:09 /usr/java/bin/java -server -Xmx128m -XX:+UseParallelGC -XX:ParallelGCThreads=4
    I assume "it" is part of the vdi deployment...
    now, as stated in the cloning problem post, I am still getting the cryptic:
    Error cloning: No suitable hosts to start a desktop for Desktop Provider venezuela.
    you might want (I invite you) to take a look at the post,
    the only difference between then and now is that I finally brought up the openldap
    server inside a zone on one of the servers, and added it as the user directory as I
    couldnt get to make it work with the win2003 active directory (can be treated in a
    separate post if needed)...
    thanks again

  • 8350i: Changing the font size results in screen redraw problems

    Hey everyone.  
    BlackBerry 8350i
    v4.6.1.204 (3.0.0.73)
    BBAlpha Sans, size 8
    When the screen redraws to account for a change in font or font size, there is a redraw problem that overwrites portions of the menu.  Steps to repro and some supporting dialogue from a 3rd party software developer are below.
    Steps needed to observe the problem:
    Go to Options -> Screen / Keyboard.
    Select Font size.
    Roll up and down between the different available font sizes.
    Observe that sections of the font size menu disappear and reappear as the "Quick brown fox" example text is redrawn.
    I have always thought that menus should receive visual preference, meaning that anything redrawn in the background should not overwrite them.  The 8350i does not seem to honor this convention, however.  Instead, the sample text renders in front of portions of the font size menu list, making those portions of the menu disappear.
    Case in point: AstraSync 3.0, just out of beta, uses some nice stylization for its main email presentation screen.  However, when you click the menu button, the menus are slowly devoured by the background text and eventually become invisible.  I reported this issue to AstraSync tech support and they have stated that this appears to be a bug in the 8350i, not their software:  
    James and others, Unfortunately the problems with the menu disappearing 
    appear to be a device issue and as such is not something that we are 
    able to fix.
    -Vicky Cwilewicz, Wednesday, April 08, 2009 
    http://forum.astrasync.com/Default.aspx?g=posts&t=649
    This conversation occurred while the AstraSync software was in beta, and I have confirmed that the issue continues now that the software is out of beta.  Given the phone's own rendering issues within Screen/Keyboard, I think their claim, that this represents a bug in the phone itself, has some merit.  Any thoughts or advice on a workaround?  Assuming that this is truly a bug in the device software itself, will RIM please consider addressing it?
    Thanks,
    James 
    Message Edited by jmegna on 06-02-2009 01:16 PM

    This problem is also evident in Opera Mini. A bit of googling revealed it was introduced in OS version 4.6.1.128. This is quite clearly a device bug and we would appreciate a response from RIM on the matter.
    Cheers

  • Devour owners...what's the latest news? Any success with customer service?

    Well, all of us know these phones don't work properly. I was just wondering if anyone has had success swapping these for a functional phone...or if everyone is still being told that the problems are rare, even though most of us are on at least our second, if not third or fourth.
    I was also wondering if there was maybe (fingers crossed) any kind of recall for these, since I pay $200 per month for a paperweight.
    My fellow devour users....Please share your latest experiences.

    The only recall I can think of is the KIN One/KIN Two phones, which got retooled as feature phones six months later in an attempt to salvage otherwise useless hardware.
    I highly doubt that the Devour will be recalled, it sucks but I doubt it "malfunctions" enough to qualify for the large expenses of a recall, versus the relatively small expense of sending out warranty replacements for those vocal minority until they either replace the phone themselves (use an upgrade, buy full retail, buy third-party such as ebay) or leave VzW.
    Gotta love business decisions that don't care about the customers -_-

  • Any Devour owners..what version does you phone indicate? Calgary or Caland?

    Has anyone with a Devour received the Caland update? Was it pushed to your phone by Verizon or did you have to "check for update" to get it? If you have the Caland update now, are you having any issues with the phone since receiving the update? Currently we have Calgary version, no update has been pushed to the Devour and when we "check for updates" we receive the message "no update available".
     Any comments are appreciated.
     Based on some of the comments and problems others are having with updates to various other phones, trying to determine if we even want to update to the new Caland version which is suppose to be available now. 

    Try posting your question in the Smartphone section.  You posted it under the Droid X forum which is a completely different Motorola phone.

  • Motorola devour won't download

    This problem has been going on for over a month now.  My Motorola Devour won't download any apps.
    I have seen this problem in other forums, and nothing they have suggested works.  I have tried
    -paying my bill
    -signing out/in Google Talk
    -clearing cache
    everything short of a full restore, as I read another post where a customer did the full restore and STILL was not able to download, so they were left with NO apps.  I don't want that to happen.
    Has anybody found another way to fix this problem?

    ahida wrote:I have seen this problem in other forums, and nothing they have suggested works.  I have tried
    -paying my bill
    -clearing cache
    So paying the old bill didn't help, eh?  Always worked for me, lol.  We'll have to pass that on to the debt collectors.  Ok, hope this helps--a lot of other people had a similar problem.  Sometimes it seems like the market database is corrupted where there is a conflict between old and new.  Going from memory now, but if you can look for "uninstall updates" on the market app, that may fix your problem.  It may be under "manage apps>market".  Please post what happens.

  • Motorola Devour

    I have a Motorola Devour and it keep deleting my contacts! Yes I can can go in and use backup assistance but it is VERY ANNOYING to have this continue to happen for no reason.
    I was offered another phone by Verizon, which would be great BUT it is a refurbished phone which means it could have a much worse problem so no I do not want it especially since this is a NEW phone (why would Verizon replace new phones with used phone???) I don't understand that.
    This phone also FREEZES UP and TURNS OFF then BACK ON at times completely on it's on.
    Verizon told me last night when I called they hadn't heard of contacts being deleted before, I said well this is my second time calling myself about it so it should be documented somewhere.
    Has anyone else had this problem?

    I do apologize about the issues you are experiencing with your device. I had those same issues with my device previously which were caused by me not updating my phone at least every 30 days. Updating the device can be completed through the following steps:
    Dial *228
    Select Option 2
    Listen to be advised the process is complete
    If the device does not power off and on automatically, complete it manually
    Here is also a link in order to access additional troubleshooting information for your device:
    http://supportsearch.vzw.com/?q1=Support&q2=Device&q3=Troubleshooting&x1=t1&x2=t2&x3=t3&p=5169&do=support

  • New RAZR:Goodbye to my Devour (thank god)

    My contract finally ended on the (should have been recalled) Devour before it actually died on me.It was slowly reaching its death before i upgraded to the RAZR this past weekend.I am still getting used to the size which is NOT as compact as the Devour was but,all in all,it is a better phone than the <Edited per TOS> it replaced.For all of you still out there under contract with the Devour,don't worry your upgrade date gets closer every day.One thing i have noticed some of the apps. i did use on the Devour from the android market place are either not in use,or because of the name change and update of the market just have been renamed or not used,i do not know which it is?I am glad to get away from motoblur finally too i was getting sick of that.Having all of my social,and media apps all cramed on that dinky little screen.Any other users that have had there RAZR for a while would appreciate input you have on it so i will know what to expect.I was hoping to hold out for the third quarter roll out of the new version of the iPhone but the Devours life would have ended well before that.
    Message was edited by: Verizon Moderator

    No they did not have any bloe but they did have the purple one,which is what i wanted so that worked out good.I wanted to go for the MAXX but at the time there were 2 people in the store with problems on there MAXX phones so i opted for the RAZR.
       See that's what happens with "bad timing" if i had been in there a little earlier say,about 30 minutes or so,i would have gone with the MAXX.Oh well,....that's life,....right??

  • A problem with threads

    I am trying to implement some kind of a server listening for requests. The listener part of the app, is a daemon thread that listens for connections and instantiates a handling daemon thread once it gets some. However, my problem is that i must be able to kill the listening thread at the user's will (say via a sto button). I have done this via the Sun's proposed way, by testing a boolean flag in the loop, which is set to false when i wish to kill the thread. The problem with this thing is the following...
    Once the thread starts excecuting, it will test the flag, find it true and enter the loop. At some point it will LOCK on the server socket waiting for connection. Unless some client actually connects, it will keep on listening indefinatelly whithought ever bothering to check for the flag again (no matter how many times you set the damn thing to false).
    My question is this: Is there any real, non-theoretical, applied way to stop thread in java safely?
    Thank you in advance,
    Lefty

    This was one solution from the socket programming forum, have you tried this??
    public Thread MyThread extends Thread{
         boolean active = true;          
         public void run(){
              ss.setSoTimeout(90);               
              while (active){                   
                   try{                       
                        serverSocket = ss.accept();
                   catch (SocketTimeoutException ste){
                   // do nothing                   
         // interrupt thread           
         public void deactivate(){               
              active = false;
              // you gotta sleep for a time longer than the               
              // accept() timeout to make sure that timeout is finished.               
              try{
                   sleep(91);               
              }catch (InterruptedException ie){            
              interrupt();
    }

  • A problem with Threads and MMapi

    I am tring to execute a class based on Game canvas.
    The problem begin when I try to Play both a MIDI tone and to run an infinit Thread loop.
    The MIDI tone "Stammers".
    How to over come the problem?
    Thanks in advance
    Kobi
    See Code example below:
    import java.io.IOException;
    import java.io.InputStream;
    import javax.microedition.lcdui.Graphics;
    import javax.microedition.lcdui.Image;
    import javax.microedition.lcdui.game.GameCanvas;
    import javax.microedition.media.Manager;
    import javax.microedition.media.MediaException;
    import javax.microedition.media.Player;
    public class MainScreenCanvas extends GameCanvas implements Runnable {
         private MainMIDlet parent;
         private boolean mTrucking = false;
         Image imgBackgound = null;
         int imgBackgoundX = 0, imgBackgoundY = 0;
         Player player;
         public MainScreenCanvas(MainMIDlet parent)
              super(true);
              this.parent = parent;
              try
                   imgBackgound = Image.createImage("/images/area03_bkg0.png");
                   imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
                   imgBackgoundY = this.getHeight() - imgBackgound.getHeight();
              catch(Exception e)
                   System.out.println(e.getMessage());
          * starts thread
         public void start()
              mTrucking = true;
              Thread t = new Thread(this);
              t.start();
          * stops thread
         public void stop()
              mTrucking = false;
         public void play()
              try
                   InputStream is = getClass().getResourceAsStream("/sounds/scale.mid");
                   player = Manager.createPlayer(is, "audio/midi");
                   player.setLoopCount(-1);
                   player.prefetch();
                   player.start();
              catch(Exception e)
                   System.out.println(e.getMessage());
         public void run()
              Graphics g = getGraphics();
              play();
              while (true)
                   tick();
                   input();
                   render(g);
          * responsible for object movements
         private void tick()
          * response to key input
         private void input()
              int keyStates = getKeyStates();
              if ((keyStates & LEFT_PRESSED) != 0)
                   imgBackgoundX++;
                   if (imgBackgoundX > 0)
                        imgBackgoundX = 0;
              if ((keyStates & RIGHT_PRESSED) != 0)
                   imgBackgoundX--;
                   if (imgBackgoundX < this.getWidth() - imgBackgound.getWidth())
                        imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
          * Responsible for the drawing
          * @param g
         private void render(Graphics g)
              g.drawImage(imgBackgound, imgBackgoundX, imgBackgoundY, Graphics.TOP | Graphics.LEFT);
              this.flushGraphics();
    }

    You can also try to provide a greater Priority to your player thread so that it gains the CPU time when ever it needs it and don't harm the playback.
    However a loop in a Thread and that to an infinite loop is one kind of very bad programming, 'cuz the loop eats up most of your CPU time which in turn adds up more delays of the execution of other tasks (just as in your case it is the playback). By witting codes bit efficiently and planning out the architectural execution flow of the app before start writing the code helps solve these kind of issues.
    You can go through [this simple tutorial|http://oreilly.com/catalog/expjava/excerpt/index.html] about Basics of Java and Threads to know more about threads.
    Regds,
    SD
    N.B. And yes there are more articles and tutorials available but much of them targets the Java SE / EE, but if you want to read them here is [another great one straight from SUN|http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html] .
    Edited by: find_suvro@SDN on 7 Nov, 2008 12:00 PM

  • J2ME problem with threads

    Hi all,
    I would like to ask you for a help. I need to write a small program at my university. I started to write a midlet which function would be to countdown time for sports activities. I woul like to start a new thread - the one that counts down - and at the same time make the main thread sleep. After the "countdown" thread finishes, the main thread wakes up and waits for user input. The problem is that when the "countdown" thread finishes his work, I've got Uncaught exception java/lang/NullPointerException. error and the midlet halts.
    Below you can find the code
    import java.lang.*;
    import java.util.*;
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.*;
    public class intervals extends MIDlet implements CommandListener
    public Display ekran;
    private SweepCanvas sweeper;
    private Form rundy;
    private TextField round0, round1, round2, round3, round4, round5, round6, round7, round8;
    private long czas,x;
    private Command exitCommand;
    private Command addRound;
    private Command delRound;
    private Command start;
    private TextField repeat;
    private Form odliczanie;
    private Alert ostrz;
    Licznik thread;
    String test;
    StringItem test1;
    int parz,i,j,k;
    static int l;
    int ilrund;
    int ilpowt;
    Item sec;
    long sec1;
    public intervals()
        rundy = new Form("Interwa&#322;y sportowe");
        exitCommand = new Command("Wyj&#347;cie", Command.EXIT, 2);
        addRound = new Command("Dodaj","Dodaj rund&#281;", Command.ITEM,1);
        delRound = new Command("Usu&#324;","Usu&#324; ostatni&#261; rund&#281;", Command.ITEM,1);
        start = new Command("Start", Command.ITEM,1);
        odliczanie = new Form("Odliczanie");
        TextField dodaj(TextField kolej)
            kolej=new TextField("Podaj czas (s) rundy "+parz,null, 4, TextField.NUMERIC);//stworzenie nowej instancji do wybierania czasu trwania rundy
            if(rundy.size()==0)
                rundy.insert(rundy.size(),kolej);
                else
                    rundy.insert(rundy.size()-1, kolej);
            return kolej;
        void odliczanie(TextField round)
            monitor m=new monitor();
            k=Integer.parseInt(round.getString());
            ekran.setCurrent(odliczanie);
            thread=new Licznik(k,odliczanie);
            thread.start();
            ekran.setCurrent(rundy);
    public void startApp()// throws MIDletStateChangeException
        rundy.deleteAll();
        repeat = new TextField("Podaj ilo&#347;&#263; powtórze&#324;",null,1,TextField.NUMERIC);
        rundy.addCommand(addRound);
        rundy.addCommand(exitCommand);
        rundy.setCommandListener(this);
        Canvas obrazek = new MyCanvas();
        ekran = Display.getDisplay(this);
        ekran.setCurrent(obrazek);
        czas=System.currentTimeMillis();
        while (System.currentTimeMillis()<czas+1000)
            continue;
        ekran.setCurrent(rundy);
    public void pauseApp()
    public void destroyApp(boolean unconditional)
        notifyDestroyed();
    public void commandAction(Command c, Displayable s)
        if (c == exitCommand)
            destroyApp(false);
            notifyDestroyed();
        else if(c==addRound)
            if(rundy.size()==0)//Sprawdzenie ilo&#347;ci elementów w celu poprawnego wy&#347;wietlania liczby rund w formie
                parz=1;
                else
                parz=rundy.size();
            switch(parz)
                case 1:
                    round0=dodaj(round0);break;
                case 2:
                    round1=dodaj(round1);break;
                case 3:
                   round2= dodaj(round2);break;
                case 4:
                    round3=dodaj(round3);break;
                case 5:
                    round4=dodaj(round4);break;
                default:
                    ostrz=new Alert("Uwaga","Maksymalna liczba rund wynosi 9", null, AlertType.INFO);
                    ostrz.setTimeout(3000);
                    ekran.setCurrent(ostrz);
            if(rundy.size()==1)
                rundy.append(repeat);
                rundy.addCommand(start);
            rundy.addCommand(delRound);
        else if(c==delRound)
            if(rundy.size()!=0)
                rundy.delete(rundy.size()-2);
                if (rundy.size()==1)
                    rundy.deleteAll();
                if(rundy.size()==0)
                    rundy.removeCommand(delRound);
                    rundy.removeCommand(start);
        else if(c==start)
            ilrund=rundy.size()-1;
            if(this.repeat.size()>0)
                ilpowt=Integer.parseInt(this.repeat.getString());
            ekran = Display.getDisplay(this);
            for (i=1; i<=ilpowt;i++)
                odliczanie= new Form("Odliczanie");
                 for (j=0;j<ilrund;j++)
                    switch(j)
                         case 0:
                             odliczanie(round0);
                             break;
                         case 1:
                             odliczanie(round1);
                             break;
                         case 2:
                             odliczanie(round2);
                             break;
                         case 3:
                             odliczanie(round3);
                             break;
                         case 4:
                             odliczanie(round4);
                             break;
                         case 5:
                             odliczanie(round5);
                             break;
                         case 6:
                             odliczanie(round6);
                             break;
                         case 7:
                             odliczanie(round7);
                             break;
                         case 8:
                             odliczanie(round8);
                             break;
    class Licznik extends Thread
        int czas1,k;
        Form forma;
        monitor m;
        public Licznik(int k,Form formap)
            czas1=k;
            forma=formap;
        public synchronized void run()
            while(czas1>0)
                forma.deleteAll();
                forma.append("Czas pozosta&#322;y (s): "+czas1);
                try{Thread.sleep(1000);} catch(InterruptedException e){e.printStackTrace();}
                czas1--;
            if(czas1<=0)
                m.put();
        }and monitor class
    public class monitor
    boolean busy=false;
    synchronized void get()
        if(!busy)
            try
                wait();
            }catch(InterruptedException e){e.printStackTrace();}
        notify();
    synchronized void put()
        if(busy)
            try
            wait();
            }catch(InterruptedException e){e.printStackTrace();}
        busy=true;
        notify();
    }Can anybody help me with this?

    Groovemaker,
    Your Licznik class has a member m of type monitor, which has not been instantiated (in other words is null) hence, when calling m.put() you get NullPointerException. Please also mind, that using Thread.sleep(1000) is not an accurate way of measuring time.
    If I may, please use recommended for Java class naming conventions - some of your names use lower case, while other don't which is confusing to the reader.
    Daniel

  • Problem with threads within applet

    Hello,
    I got an applet, inside this applet I have a singleton, inside this singleton I have a thread.
    this thread is running in endless loop.
    he is doing something and go to sleep on and on.
    the problem is,
    when I refresh my IE6 browser I see more than 1 thread.
    for debug matter, I did the following things:
    inside the thread, sysout every time he goes to sleep.
    sysout in the singleton constructor.
    sysout in the singleton destructor.
    the output goes like this:
    when refresh the page, the singleton constructor loading but not every refresh, sometimes I see the constructor output and sometimes I dont.
    The thread inside the singleton is giving me the same output, sometime I see more than one thread at a time and sometimes I dont.
    The destructor never works (no output there).
    I don't understand what is going on.
    someone can please shed some light?
    thanks.
    btw. I am working with JRE 1.1
    this is very old and big applet and I can't convert it to something new.

    Ooops. sorry!
    I did.
         public void start() {
         public void stop() {
         public void destroy() {
              try {
                   resetAll();
                   Configuration.closeConnection();
                   QuoteItem.closeConnection();
              } finally {
                   try {
                        super.finalize();
                   } catch (Throwable e) {
                        e.printStackTrace();
         }

  • Problem with Threads and a static variable

    I have a problem with the code below. I am yet to make sure that I understand the problem. Correct me if I am wrong please.
    Code functionality:
    A timer calls SetState every second. It sets the state and sets boolean variable "changed" to true. Then notifies a main process thread to check if the state changed to send a message.
    The problem as far I understand is:
    Assume the timer Thread calls SetState twice before the main process Thread runs. As a result, "changed" is set to true twice. However, since the main process is blocked twice during the two calls to SetState, when it runs it would have the two SetState timer threads blocked on its synchronized body. It will pass the first one, send the message and set "changed" to false since it was true. Now, it will pass the second thread, but here is the problem, "changed" is already set to false. As a result, it won't send the message even though it is supposed to.
    Would you please let me know if my understanding is correct? If so, what would you propose to resolve the problem? Should I call wait some other or should I notify in a different way?
    Thanks,
    B.D.
    Code:
    private static volatile boolean bChanged = false;
    private static Thread objMainProcess;
       protected static void Init(){
            objMainProcess = new Thread() {
                public void run() {
                    while( objMainProcess == Thread.currentThread() ) {
                       GetState();
            objMainProcess.setDaemon( true );
            objMainProcess.start();
        public static void initStatusTimer(){
            if(objTimer == null)
                 objTimer = new javax.swing.Timer( 1000, new java.awt.event.ActionListener(){
                    public void actionPerformed( java.awt.event.ActionEvent evt){
                              SetState();
        private static void SetState(){
            if( objMainProcess == null ) return;
            synchronized( objMainProcess ) {
                bChanged = true;
                try{
                    objMainProcess.notify();
                }catch( IllegalMonitorStateException e ) {}
        private static boolean GetState() {
            if( objMainProcess == null ) return false;
            synchronized( objMainProcess ) {
                if( bChanged) {
                    SendMessage();
                    bChanged = false;
                    return true;
                try {
                    objMainProcess.wait();
                }catch( InterruptedException e ) {}
                return false;
        }

    Thanks DrClap for your reply. Everything you said is right. It is not easy to make them alternate since SetState() could be called from different places where the state could be anything else but a status message. Like a GREETING message for example. It is a handshaking message but not a status message.
    Again as you said, There is a reason I can't call sendMessage() inside setState().
    The only way I was able to do it is by having a counter of the number of notifies that have been called. Every time notify() is called a counter is incremented. Now instead of just checking if "changed" flag is true, I also check if notify counter is greater than zero. If both true, I send the message. If "changed" flag is false, I check again if the notify counter is greater than zero, I send the message. This way it works, but it is kind of a patch than a good design fix. I am yet to find a good solution.
    Thanks,
    B.D.

  • Problem with threads running javaw

    Hi,
    Having a problem with multi thread programming using client server sockets. The program works find when starting the the application in a console using java muti.java , but when using javaw multi.java the program doesnt die and have to kill it in the task manager. The program doesnt display any of my gui error messages either when the server disconnect the client. all works find in a console. any advice on this as I havent been able to understand why this is happening? any comment would be appreciated.
    troy.

    troy,
    Try and post a minimum code sample of your app which
    does not work.
    When using javaw, make sure you redirect the standard
    error and standard output streams to file.
    Graeme.Hi Graeme,
    I dont understand what you mean by redirection to file? some of my code below.
    The code works fine under a console, code is supposed to exit when the client (the other server )disconnects. the problem is that but the clientworker side of the code still works. which under console it doesnt.
    public class Server{
    ServerSocket aServerSocket;
    Socket dianosticsSocket;
    Socket nPortExpress;
    ClientListener aClientListener;
    LinkedList queue = new LinkedList();
    int port = 0;
    int clientPort = 0;
    String clientName = null;
    boolean serverAlive = true;
    * Server constructor generates a server
    * Socket and then starts a client threads.
    * @param aPort      socket port of local machine.
    public Server(int aPort, String aClientName, int aClientPort){
    port = aPort;
    clientName = aClientName;
    clientPort = aClientPort;
    try{
    // create a new thread
    aServerSocket = new ServerSocket(port) ;
    // connect to the nPortExpress
    aClientListener = new ClientListener(InetAddress.getByName(clientName), clientPort, queue,this);
    // aClientListener.setDaemon(true);
    aClientListener.start();
    // start a dianostic port
    DiagnosticsServer aDiagnosticsServer = new DiagnosticsServer(port,queue,aClientListener);
    // System.out.println("Server is running on port " + port + "...");
    // System.out.println("Connect to nPort");
    catch(Exception e)
    // System.out.println("ERROR: Server port " + port + " not available");
    JOptionPane.showMessageDialog(null, (e.toString()),"ERROR: Server port " + port + " not available", JOptionPane.ERROR_MESSAGE);
    serverAlive = false;
    System.exit(1);
    while(serverAlive&&aClientListener.hostSocket.isConnected()){
    try{
    // connect the client
    Socket aClient = aServerSocket.accept();
    //System.out.println("open client connection");
    //System.out.println("client local: "+ aClient.getLocalAddress().toString());
    // System.out.println("client localport: "+ aClient.getLocalPort());
    // System.out.println("client : "+ aClient.getInetAddress().toString());
    // System.out.println("client port: "+ aClient.getLocalPort());
    // make a new client thread
    ClientWorker clientThread = new ClientWorker(aClient, queue, aClientListener, false);
    // start thread
    clientThread.start();
    catch(Exception e)
    //System.out.println("ERROR: Client connection failure");
    JOptionPane.showMessageDialog(null, (e.toString()),"ERROR: Client connection failure", JOptionPane.ERROR_MESSAGE);
    }// end while
    } // end constructor Server
    void serverExit(){
         JOptionPane.showMessageDialog(null, "Server ","ERROR: nPort Failure", JOptionPane.ERROR_MESSAGE);
         System.exit(1);
    }// end class Server
    *** connect to another server
    public class ClientListener extends Thread{
    InetAddress hostName;
    int hostPort;
    Socket hostSocket;
    BufferedReader in;
    PrintWriter out;
    boolean loggedIn;
    LinkedList queue;      // reference to Server queue
    Server serverRef; // reference to main server
    * ClientListener connects to the host server.
    * @param aHostName is the name of the host eg server name or IP address.
    * @param aHostPort is a port number of the host.
    * @param aLoginName is the users login name.
    public ClientListener(InetAddress aHostName, int aHostPort,LinkedList aQueue,Server aServer)      // reference to Server queue)
    hostName = aHostName;
    hostPort = aHostPort;
    queue = aQueue;
    serverRef = aServer;      
    // connect to the server
    try{
    hostSocket = new Socket(hostName, hostPort);
    catch(IOException e){
    //System.out.println("ERROR: Connection Host Failed");
    JOptionPane.showMessageDialog(null, (e.toString()),"ERROR: Connection to nPort Failed", JOptionPane.ERROR_MESSAGE);     
    System.exit(0);
    } // end constructor ClientListener
    ** multi client connection server
    ClientWorker(Socket aSocket,LinkedList aQueue, ClientListener aClientListener, boolean diagnostics){
    queue = aQueue;
    addToQueue(this);
    client = aSocket;
    clientRef = aClientListener;
    aDiagnostic = diagnostics;
    } // end constructor ClientWorker
    * run method is the main loop of the server program
    * in change of handle new client connection as well
    * as handle all messages and errors.
    public void run(){
    boolean alive = true;
    String aSubString = "";
    in = null;
    out = null;
    loginName = "";
    loggedIn = false;
    while (alive && client.isConnected()&& clientRef.hostSocket.isConnected()){
    try{
    in = new BufferedReader(new InputStreamReader(client.getInputStream()));
    out = new PrintWriter(new OutputStreamWriter(client.getOutputStream()));
    if(aDiagnostic){
    out.println("WELCOME to diagnostics");
    broadCastDia("Connect : diagnostics "+client.getInetAddress().toString());
    out.flush();
    else {       
    out.println("WELCOME to Troy's Server");
    broadCastDia("Connect : client "+client.getInetAddress().toString());
         out.flush();
    String line;
    while(((line = in.readLine())!= null)){
    StringTokenizer aStringToken = new StringTokenizer(line, " ");
    if(!aDiagnostic){
    broadCastDia(line);
    clientRef.sendMessage(line); // send mesage out to netExpress
    out.println(line);
    out.flush();
    else{
    if(line.equals("GETIPS"))
    getIPs();
    else{
    clientRef.sendMessage(line); // send mesage out to netExpress
    out.println(line);
    out.flush();
    } // end while
    catch(Exception e){
    // System.out.println("ERROR:Client Connection reset");
                             JOptionPane.showMessageDialog(null, (e.toString()),"ERROR:Client Connection reset", JOptionPane.ERROR_MESSAGE);     
    try{
    if(aDiagnostic){
    broadCastDia("Disconnect : diagnostics "+client.getInetAddress().toString());
    out.flush();
    else {       
    broadCastDia("Disconnect : client "+client.getInetAddress().toString());
         out.flush();
    // close the buffers and connection;
    in.close();
    out.close();
    client.close();
    // System.out.println("out");
    // remove from list
    removeThreadQueue(this);
    alive = false;
    catch(Exception e){
    // System.out.println("ERROR: Client Connection reset failure");
    JOptionPane.showMessageDialog(null, (e.toString()),"ERROR: Client Connection reset failure", JOptionPane.ERROR_MESSAGE);     
    }// end while
    } // end method run
    * method run - Generates io stream for communicating with the server and
    * starts the client gui. Run also parses the input commands from the server.
    public void run(){
    boolean alive = true;
    try{
    // begin to life the gui
    // aGuiClient = new ClientGui(hostName.getHostName(), hostPort, loginName, this);
    // aGuiClient.show();
    in = new BufferedReader(new InputStreamReader(hostSocket.getInputStream()));
    out = new PrintWriter(new OutputStreamWriter(hostSocket.getOutputStream()));
    while (alive && hostSocket.isConnected()){
    String line;
    while(((line = in.readLine())!= null)){
    System.out.println(line);
    broadCast(line);
    } // end while
    } // end while
    catch(Exception e){
    //     System.out.println("ERRORa Connection to host reset");
    JOptionPane.showMessageDialog(null, (e.toString()),"ERROR: Connection to nPort reset", JOptionPane.ERROR_MESSAGE);
    try{
    hostSocket.close();
         }catch(Exception a){
         JOptionPane.showMessageDialog(null, (a.toString()),"ERROR: Exception", JOptionPane.ERROR_MESSAGE);
    alive = false;
    System.exit(1);
    } // end method run

Maybe you are looking for

  • How can I turn off the sound from the original midi  or audio tracks when I turned on the duplicate tracks for editing ?

    How can I turn off the sound from the original midi or audio tracks when I edit or listen to the duplicate tracks in Logic Pro 9 ? I'm using iMac desktop with Mac OS X Version 10.7.3. Pls advise.

  • CPM and SRM in BW7.0

    Hy to all, i'm interesting about bw7.0. I know that bps is integrated in it. Do you know if CPM and SRM are integrated in it too? Which are the transaction code of CPM and SRM. Thanks in advanced Best regards Dario

  • Connecting laptop to 2511

    Hi i just got a laptop .. how I will connect it to 2511.. there is no serial port.. can I use a telnet or something else.. Thanks

  • Material Class in t-code MM03

    Dear All, I see that there is a fiedl in T-code MM03 in tab "Sales:General/Plant" named "Matl Class" in the bottom of the tab. I wonder what is this material class? When i try to see the technical source (table-field) for this material class,it shows

  • Install Photoshop CC

    I have photoshop cs6 & lightroom 5 inalled already.  when I install photoshop cc with lightroom should I delete cs6 & lightroom before I start the install or doesn't it matter?  Do they run along side each other?