title: onDraw method not called in my application
body: <p>i am developing an application, in that onDraw() is called. i am using the following logic.</p>
  
  <p>so, please guide where i did the mistake.</p>
  
  <p><strong>MainActivity</strong>      </p>
  
  <pre><code>public class Hello extends Activity implements SensorListener
  {
    private MyView myView;
    private SensorManager sensorManager;
  
    public void onAccuracyChanged(int paramInt1, int paramInt2)
    {
    }
  
    public void onCreate(Bundle paramBundle)
    {
      super.onCreate(paramBundle);
      Log.e("hello", "hello");
      this.myView = new MyView(this);
      setContentView(this.myView);
      this.sensorManager = ((SensorManager)getSystemService("sensor"));
      this.myView.setTheme(2);
    }
  
    protected void onResume()
    {
      super.onResume();
      this.sensorManager.registerListener(this, 3, 0);
    }
  
    public void onSensorChanged(int paramInt, float[] paramArrayOfFloat)
    {
      switch (paramInt)
      {
      default:
      case 1:
      case 2:
      }
      this.myView.resetTama();
      do
      {
        do
          return;
        while (Math.abs(paramArrayOfFloat[2]) &lt;= 50.0F);
      }
      while (Math.abs(paramArrayOfFloat[0]) &lt;= 15.0F);
  
    }
  
    public void onWindowFocusChanged(boolean paramBoolean)
    {
      super.onWindowFocusChanged(paramBoolean);
      if (paramBoolean)
        this.myView.init();
    }
  }
  </code></pre>
  
  <p><strong>MyView class</strong></p>
  
  <pre><code>import android.content.Context;
  import android.content.res.Resources;
  import android.graphics.Bitmap;
  import android.graphics.BitmapFactory;
  import android.graphics.Canvas;
  import android.graphics.Paint;
  import android.util.Log;
  import android.view.MotionEvent;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.ImageButton;
  import android.widget.RelativeLayout;
  import android.widget.RelativeLayout.LayoutParams;
  import android.widget.TextView;
  import java.lang.reflect.Array;
  
  public class MyView extends RelativeLayout
  {
    private final int FP = -1;
    private final int WC = -2;
    public boolean disableApplication = false;
    private int imgType = 1;
    public boolean isBlack = false;
    boolean isInitialized;
    private Bitmap myBitmap;
    private Paint myPaint = new Paint();
    private int[] numbers;
    private Tama[] oyatamaArray;
    private Tama[][] tamaArray;
  
    public MyView(Context paramContext)
    {
      super(paramContext);
      Log.e("MyView", "MyView");
      setFocusable(true);
      setBackgroundResource(R.drawable.haikei);
      setWillNotDraw(false); 
      this.myBitmap = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.tama);
      this.numbers = new int[6];
  
  
      for (int i = 0; i&lt;numbers.length; i++)
      {
        if (i &gt;= this.numbers.length)
        {
          loadChangeThemeButton(paramContext);
          new TextView(paramContext).setBackgroundResource(R.drawable.bar);
          return;
        }
        this.numbers[i] = 0;
      }
    }
  
    private void changeBackgroundImage()
    {
      int i = 1 + this.imgType;
      this.imgType = i;
      if (i &gt; 3)
        this.imgType = 1;
      setTheme(this.imgType);
    }
  
    private void loadChangeThemeButton(Context paramContext)
    {
      ImageButton localImageButton = new ImageButton(paramContext);
      localImageButton.setBackgroundResource(R.drawable.themebutton);
      RelativeLayout.LayoutParams localLayoutParams = new RelativeLayout.LayoutParams(-2, -2);
      localLayoutParams.addRule(9);
      localLayoutParams.addRule(12);
      localLayoutParams.setMargins(0, 0, 30, 30);
      addView(localImageButton, localLayoutParams);
      localImageButton.setOnClickListener(new View.OnClickListener()
      {
        public void onClick(View paramView)
        {
          MyView.this.changeBackgroundImage();
        }
      });
    }
  
    private Bitmap returnNumberImg(Resources paramResources, int paramInt)
    {
      switch (paramInt)
      {
      default:
        return BitmapFactory.decodeResource(paramResources, R.drawable.n0);
      case 1:
        return BitmapFactory.decodeResource(paramResources, R.drawable.n1);
      case 2:
        return BitmapFactory.decodeResource(paramResources, R.drawable.n2);
      case 3:
        return BitmapFactory.decodeResource(paramResources, R.drawable.n3);
      case 4:
        return BitmapFactory.decodeResource(paramResources, R.drawable.n4);
      case 5:
        return BitmapFactory.decodeResource(paramResources, R.drawable.n5);
      case 6:
        return BitmapFactory.decodeResource(paramResources, R.drawable.n6);
      case 7:
        return BitmapFactory.decodeResource(paramResources, R.drawable.n7);
      case 8:
        return BitmapFactory.decodeResource(paramResources, R.drawable.n8);
      case 9:
      }
      return BitmapFactory.decodeResource(paramResources, R.drawable.n9);
    }
  
    private void settingTamasTouchX(int paramInt1, int paramInt2)
    {
      int i = 0;
      if (i &gt;= this.oyatamaArray.length);
      int k;
      for (int j = 0; ; j++)
      {
        if (j &gt;= this.tamaArray.length)
        {
          return;
        }
        k = 0;
        if (k &lt; this.tamaArray[j].length)
        {
            if (this.tamaArray[j][k].checkArea(paramInt1, paramInt2));
              for (this.tamaArray[j][k].touchX = paramInt1; ; this.tamaArray[j][k].touchX = 0)
              {
                k++;
                break;
              }
  //        break label90;
        }
      }
    }
  
    public void init()
    {
      int i = getHeight() / 7;
      int[] arrayOfInt = new int[6];
      int j = 5;
      if (j &lt; 0)
        this.oyatamaArray = new Tama[6];
      int m;
      int i1 = 0;
      for (int k = 0; ; k++)
      {
        if (k &gt;= this.oyatamaArray.length)
        {
          this.tamaArray = ((Tama[][])Array.newInstance(Tama.class, new int[] { 6, 4 }));
          m = 0;
          if (m &lt; this.tamaArray.length)
          {
  
              for (int n = 0; ; n++)
              {
                if (n &gt;= this.tamaArray[m].length)
                {
                  m++;
                  break;
                }
                this.tamaArray[m][n] = new Tama(40 + n * 37, arrayOfInt[m] - 32, n + m * 10);
              }
  //          break label154;
          }
          i1 = 0;
          if (i1 &lt; this.tamaArray.length)
          {
              for (int i2 = 0; ; i2++)
              {
                if (i2 &gt;= this.tamaArray[i1].length)
                {
                  i1++;
                  break;
                }
                if (i2 != this.tamaArray[i1].length - 1)
                  this.tamaArray[i1][i2].ueTama = this.tamaArray[i1][(i2 + 1)];
                if (i2 == 0)
                  continue;
                this.tamaArray[i1][i2].shitaTama = this.tamaArray[i1][(i2 - 1)];
              }
  //          break label222;
          }
          this.isInitialized = true;
          return;
        }
        this.oyatamaArray[k] = new Tama(279, arrayOfInt[k] - 32, k);
        this.oyatamaArray[k].isOya = true;
      }
    }
  
  
  
    @Override
    protected void dispatchDraw(Canvas canvas){         
  
          super.dispatchDraw(canvas);     
          Log.e("......this.........","drawing");   
      }
  
  
  @Override
    protected void onDraw(Canvas paramCanvas)
    {
  
        super.onDraw(paramCanvas);
  
  
        Log.e("This on draw","....yes");
  
      if (!this.isInitialized)
        init();
      int i = 0;
      Resources localResources;
      int m;
      while (true)
      {
        int j;
        if (i &gt;= this.oyatamaArray.length)
        {
          j = 0;
          if (j &gt;= this.tamaArray.length)
          {
            localResources = getContext().getResources();
            m = 0;
            if (m &lt; 7)
              break;
            return;
          }
        }
        else
        {
          paramCanvas.drawBitmap(this.myBitmap, this.oyatamaArray[i].getX(), this.oyatamaArray[i].getY(), this.myPaint);
          i++;
          continue;
        }
        for (int k = 0; ; k++)
        {
          if (k &gt;= this.tamaArray[j].length)
          {
            j++;
            break;
          }
          paramCanvas.drawBitmap(this.myBitmap, this.tamaArray[j][k].getX(), this.tamaArray[j][k].getY(), this.myPaint);
        }
      }
      if (this.numbers.length &lt;= m)
      {
      for (Bitmap localBitmap = BitmapFactory.decodeResource(localResources, 2130837523); ; localBitmap = returnNumberImg(localResources, this.numbers[m]))
      {
        paramCanvas.drawBitmap(localBitmap, 8.0F, getHeight() / 2 + m * 18, this.myPaint);
        m++;
        break;
      }
      }
    }
  
    public boolean onTouchEvent(MotionEvent paramMotionEvent)
    {
      int i = (int)paramMotionEvent.getX();
      int j = (int)paramMotionEvent.getY();
      if ((paramMotionEvent.getAction() == 0) &amp;&amp; (i &gt;= 0) &amp;&amp; (i &lt;= 40) &amp;&amp; (410 &lt;= j) &amp;&amp; (j &lt;= 430))
        changeBackgroundImage();
      if (paramMotionEvent.getAction() == 0)
        settingTamasTouchX(i, j);
      if (1 == paramMotionEvent.getAction())
        settingTamasTouchX(0, 0);
      int k;
      int m = 0;
      if (2 == paramMotionEvent.getAction())
      {
        k = 0;
        if (k &gt;= this.oyatamaArray.length)
        {
          m = 0;
          if (m &lt; this.tamaArray.length)
          {
              for (int n = 0; ; n++)
              {
                if (n &gt;= this.tamaArray[m].length)
                {
                  m++;
                  break;
                }
                this.tamaArray[m][n].checkAndSetArea(i, j);
                if (!this.tamaArray[m][n].isUp)
                  continue;
                int[] arrayOfInt = this.numbers;
                arrayOfInt[m] = (1 + arrayOfInt[m]);
              }
  //          break label164;
          }
          invalidate();
        }
      }
      else
      {
        return true;
      }
      this.oyatamaArray[k].checkAndSetArea(i, j);
      if (this.oyatamaArray[k].isUp)
        this.numbers[k] = 5;
      while (true)
      {
        k++;
        break;
      }
  //    label164: 
      return disableApplication;
    }
  
    public void resetTama()
    {
      int j;
      for (int i = 0; ; i++)
      {
        if (i &gt;= this.oyatamaArray.length)
        {
          j = 0;
          if (j &lt; this.tamaArray.length)
            break;
          invalidate();
          return;
        }
        this.oyatamaArray[i].moveX(this.oyatamaArray[i].startX);
        this.oyatamaArray[i].isUp = false;
        this.numbers[i] = 0;
      }
      for (int k = 0; ; k++)
      {
        if (k &gt;= this.tamaArray[j].length)
        {
          j++;
          break;
        }
        this.tamaArray[j][k].moveX(this.tamaArray[j][k].startX);
        this.tamaArray[j][k].isUp = false;
      }
    }
  
    public void sensorChange(float[] paramArrayOfFloat)
    {
      int i = 0;
      if (paramArrayOfFloat[2] &lt; -50.0F)
        i = 0 - 3;
      int k;
      while (true)
      {
        int j = 0;
        if (j &gt;= this.oyatamaArray.length)
        {
          k = 0;
          if (k &lt; this.tamaArray.length)
            break;
          if (i != 0)
            invalidate();
          return;
        }
        else
        {
          this.oyatamaArray[j].moveX(i + this.oyatamaArray[j].getX());
          if (this.oyatamaArray[j].isUp)
            this.numbers[j] = 5;
          while (true)
          {
            j++;
            break;
          }
        }
      }
      for (int m = 0; ; m++)
      {
        if (m &gt;= this.tamaArray[k].length)
        {
          k++;
          break;
        }
        this.tamaArray[k][m].moveX(i + this.tamaArray[k][m].getX());
        if (!this.tamaArray[k][m].isUp)
          continue;
        int[] arrayOfInt = this.numbers;
        arrayOfInt[k] = (1 + arrayOfInt[k]);
      }
    }
  
    public void setTheme(int paramInt)
    {
      Resources localResources = getContext().getResources();
      if (paramInt == 1)
      {
        this.myBitmap = BitmapFactory.decodeResource(localResources, R.drawable.tama);
        setBackgroundResource(R.drawable.haikei);
      }
      while (true)
      {
        invalidate();
  //      return;
        if (paramInt == 2)
        {
          this.myBitmap = BitmapFactory.decodeResource(localResources, R.drawable.tama2);
          setBackgroundResource(2130837510);
          continue;
        }
        this.myBitmap = BitmapFactory.decodeResource(localResources, R.drawable.tama3);
        setBackgroundResource(2130837510);
  
      }
    }
  }
  </code></pre>
  
  <p><strong>main.xml</strong></p>
  
  <pre><code>    &lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;FrameLayout android:id="@id/FrameLayout01" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"
     /&gt;
  </code></pre>