I'm just trying to figure out the best approach for running a scolling background on an android device. The method I have so far.... its pretty laggy. I use threads, which I believe is not the best bet for android platforms

    @Override
    	public void run() {
    		// Game Loop
    		while(runningThread){
    			//Scroll background down
    			bgY += 1;
    
    			try {
    				this.postInvalidate();
    				t.sleep(10);
    			} catch (Exception e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    		
    	}

where postinvalidate in the onDraw function simply pushings the background image down

    canvas.drawBitmap(backgroundImage, bgX, bgY, null);

Thanks in advance


-----------------
**UPDATE & SOLUTION**

Thank you for everyone helping me. I came across this:

post http://stackoverflow.com/questions/1430741/how-to-draw-lots-of-bitmaps-on-screen-in-an-android-game-without-slow-performance

Helped my problem a lot. However, Seemed I was creating bitmaps in the onDraw every time is was caused, meaning that was doing 95% of the slowing down. oops :)


Below is my inner class in my surfaceview for reference purposes

    class MapThread extends Thread{
        private Map map;
        private SurfaceHolder holder;
        private boolean run = false;
        
        public MapThread(Map map, SurfaceHolder holder){
            this.holder = holder;
            this.map = map;
            setRunning(true);
        }
        
        public void setRunning(boolean run){
            this.run = run;
        }
        
        @Override
        public void run(){
            while(run){
                try{
                    Canvas c = null;

                     try {
                           c = holder.lockCanvas(null);
                           synchronized (holder) {
                                map.onDraw(c);
                         }
                     } finally {

                         if (c != null) {
                             holder.unlockCanvasAndPost(c);
                         }
                     }
            }
        }
    }