java - FATAL exception Thread -12 -


app crashing after timer finishes time... have move activity lvl_2 after timeout .

its game 5 levels namely game,lvl2_game,lvl3_game,lvl4_game,lvl5_game 8 layout lvl_1,lvl_2,lvl_3,lvl_4,lvl_5 ,menu , home,score have move game.java lvl2_game after timeout returning fatal exception : thread -12 java.lang.illigalstateexception

public class game extends activity implements sensoreventlistener{      mediaplayer coinsong;     float fx1,fx2,fx3,fx4,fy1,fy2,fy3,fy4;     float xb1,xb2,xb3,xb4,yb1,yb2,yb3,yb4;     int result=0;     float xc1_1,xc1_2,xc1_3,xc1_4,yc1_1,yc1_2,yc1_3,yc1_4;     int chk=1,delay,chkc1=0,chkc2=0,chkc3=0,chkc4=0,chkc5=0,chkc6=0,chkc7=0,chkc8=0,chkc9=0,chkc10=0,chkc11=0,chkc12=0;     float xc2_1,xc2_2,xc2_3,xc2_4,yc2_1,yc2_2,yc2_3,yc2_4;     float xc3_1,xc3_2,xc3_3,xc3_4,yc3_1,yc3_2,yc3_3,yc3_4;     float xc4_1,xc4_2,xc4_3,xc4_4,yc4_1,yc4_2,yc4_3,yc4_4;     float xc5_1,xc5_2,xc5_3,xc5_4,yc5_1,yc5_2,yc5_3,yc5_4;     float xc6_1,xc6_2,xc6_3,xc6_4,yc6_1,yc6_2,yc6_3,yc6_4;     float xc7_1,xc7_2,xc7_3,xc7_4,yc7_1,yc7_2,yc7_3,yc7_4;     float xc8_1,xc8_2,xc8_3,xc8_4,yc8_1,yc8_2,yc8_3,yc8_4;     float xc9_1,xc9_2,xc9_3,xc9_4,yc9_1,yc9_2,yc9_3,yc9_4;     float xc10_1,xc10_2,xc10_3,xc10_4,yc10_1,yc10_2,yc10_3,yc10_4;     float xc11_1,xc11_2,xc11_3,xc11_4,yc11_1,yc11_2,yc11_3,yc11_4;     float xc12_1,xc12_2,xc12_3,xc12_4,yc12_1,yc12_2,yc12_3,yc12_4;      float xe1,xe2,xe3,xe4,xe11,xe22,xe33,xe44,ye1,ye2,ye3,ye4,ye11,ye22,ye33,ye44;      float   sensorx,             sencurrx,             x,             y,             eatx=0,             eaty,             ballx,             bally,             sencurry,             sensory;      float   eatx2=eatx,             eaty2=eaty+100;       int score;      bitmap  ball,             finish,             eat,             eat1,             eat2,             eat3,             eat4,             coin,             coin1,             coin2,             coin3,             coin4,             coin5,             coin6,             coin7,             coin8,             coin9,             coin10,             coin11,             wallp;     sensormanager sm;     wakelock wl;     mysurface game_surface ;      public class mysurface extends surfaceview implements runnable {          surfaceholder my_holder;         thread game_thread= null;         boolean isrunning= false;         public mysurface(context context){             // todo auto-generated constructor stub             super(context);             my_holder = getholder();          }         public void pause(){             isrunning =false;             while(true){                 try {                     game_thread.join();                 } catch (interruptedexception e) {                     // todo auto-generated catch block                     e.printstacktrace();                 }                 break;             }             game_thread= null;         }         public void resume(){             isrunning=true;             game_thread = new thread(this);             game_thread.start();             wl.acquire();         }         @override         public void run() {             // todo auto-generated method stub             while(isrunning){                 if(!my_holder.getsurface().isvalid())                     continue;                 canvas canvas= my_holder.lockcanvas();                 //delay++;                  canvas.drawrgb(175,225,251);                 //canvas.drawbitmap(wallp,0, 0, null);                 float centerx=(canvas.getwidth()/2)-(ball.getwidth()/2);                 float centery=(canvas.getheight()/2)-(ball.getheight()/2);                  canvas.drawbitmap(finish,0,350, null);                   // coin layer 1                  if(chkc1==0)                 canvas.drawbitmap(coin,50,50,null);                 if(chkc2==0)                 canvas.drawbitmap(coin1,50+coin.getwidth(),50,null);                 if(chkc3==0)                 canvas.drawbitmap(coin2,50+coin.getwidth()*2,50,null);                 if(chkc4==0)                 canvas.drawbitmap(coin3,50+coin.getwidth()*3,50,null);                   // coin layer 2                   if(chkc5==0)                 canvas.drawbitmap(coin4,100,150,null);                 if(chkc6==0)                 canvas.drawbitmap(coin5,100+coin.getwidth(),150,null);                 if(chkc7==0)                 canvas.drawbitmap(coin6,100+coin.getwidth()*2,150,null);                 if(chkc8==0)                 canvas.drawbitmap(coin7,100+coin.getwidth()*3,150,null);                    // coin layer 3                   if(chkc9==0)                 canvas.drawbitmap(coin8,50,250,null);                 if(chkc10==0)                 canvas.drawbitmap(coin9,50+coin.getwidth(),250,null);                 if(chkc11==0)                 canvas.drawbitmap(coin10,50+coin.getwidth()*2,250,null);                 if(chkc12==0)                 canvas.drawbitmap(coin11,50+coin.getwidth()*3,250,null);                  // 2 eat                  canvas.drawbitmap(eat1, eatx,eaty, null);                 float eatt;                 eatt=(canvas.getheight()- finish.getheight())- eat.getheight()-eaty2;                 canvas.drawbitmap(eat, eatx2,eatt , null);                  ballx=(centerx+sensorx*20);                 decimalformat df = new decimalformat("#.#");                 ballx=float.valueof(df.format(ballx));                 decimalformat df2 = new decimalformat("#.#");                 bally=(centery+sensory*50);                 bally=float.valueof(df2.format(bally));          // coordinates of  coins                 xc1_1=50;                 xc1_2=50+coin.getwidth();                 xc1_3=50+coin.getwidth();                 xc1_4=50;                 yc1_1=50;                 yc1_2=50;                 yc1_3=50-coin.getheight();                 yc1_4=50-coin.getheight();                  xc2_1=50+coin.getwidth();                 xc2_2=50+coin.getwidth()*2;                 xc2_3=50+coin.getwidth()*2;                 xc2_4=50+coin.getwidth();                 yc2_1=50;                 yc2_2=50;                 yc2_3=50-coin.getheight();                 yc2_4=50-coin.getheight();                  xc3_1=50+coin.getwidth()*2;                 xc3_2=50+coin.getwidth()*3;                 xc3_3=50+coin.getwidth()*3;                 xc3_4=50+coin.getwidth()*2;                 yc3_1=50;                 yc3_2=50;                 yc3_3=50-coin.getheight();                 yc3_4=50-coin.getheight();                  xc4_1=50+coin.getwidth()*3;                 xc4_2=50+coin.getwidth()*4;                 xc4_3=50+coin.getwidth()*4;                 xc4_4=50+coin.getwidth()*3;                 yc4_1=50;                 yc4_2=50;                 yc4_3=50-coin.getheight();                 yc4_4=50-coin.getheight();                  xc5_1=100;                 xc5_2=100+coin.getwidth();                 xc5_3=100+coin.getwidth();                 xc5_4=100;                 yc5_1=150;                 yc5_2=150;                 yc5_3=150-coin.getheight();                 yc5_4=150-coin.getwidth();                  xc6_1=100+coin.getwidth();                 xc6_2=100+coin.getwidth()*2;                 xc6_3=100+coin.getwidth()*2;                 xc6_4=100+coin.getwidth();                 yc6_1=150;                 yc6_2=150;                 yc6_3=150-coin.getheight();                 yc6_4=150-coin.getheight();                  xc7_1=100+coin.getwidth()*2;                 xc7_2=100+coin.getwidth()*3;                 xc7_3=100+coin.getwidth()*3;                 xc7_4=100+coin.getwidth()*2;                 yc7_1=150;                 yc7_2=150;                 yc7_3=150-coin.getheight();                 yc7_4=150-coin.getheight();                  xc8_1=100+coin.getwidth()*3;                 xc8_2=100+coin.getwidth()*4;                 xc8_3=100+coin.getwidth()*4;                 xc8_4=100+coin.getwidth()*3;                 yc8_1=150;                 yc8_2=150;                 yc8_3=150-coin.getheight();                 yc8_4=150-coin.getheight();                  xc9_1=50;                 xc9_2=50+coin.getwidth();                 xc9_3=50+coin.getwidth();                 xc9_4=50;                 yc9_1=250;                 yc9_2=250;                 yc9_3=250-coin.getheight();                 yc9_4=250-coin.getheight();                  xc10_1=50+coin.getwidth();                 xc10_2=50+coin.getwidth()*2;                 xc10_3=50+coin.getwidth()*2;                 xc10_4=50+coin.getwidth();                 yc10_1=250;                 yc10_2=250;                 yc10_3=250-coin.getheight();                 yc10_4=250-coin.getwidth();                  xc11_1=50+coin.getwidth()*2;                 xc11_2=50+coin.getwidth()*3;                 xc11_3=50+coin.getwidth()*3;                 xc11_4=50+coin.getwidth()*2;                 yc11_1=250;                 yc11_2=250;                 yc11_3=250-coin.getheight();                 yc11_4=250-coin.getwidth();                  xc12_1=50+coin.getwidth()*3;                 xc12_2=50+coin.getwidth()*4;                 xc12_3=50+coin.getwidth()*4;                 xc12_4=50+coin.getwidth()*3;                 yc12_1=250;                 yc12_2=250;                 yc12_3=250-coin.getheight();                 yc12_4=250-coin.getwidth();          // ball touching coin                             if(     ((xb1>xc1_4)&&(xb1<xc1_2))&&((yb1>yc1_4)&&(yb1<yc1_2))||                         ((xb2>xc1_4)&&(xb2<xc1_2))&&((yb2>yc1_4)&&(yb2<yc1_2)) ||                         ((xb3>xc1_4)&&(xb3<xc1_2))&&((yb3>yc1_4)&&(yb3<yc1_2)) ||                         ((xb4>xc1_4)&&(xb4<xc1_2))&&((yb4>yc1_4)&&(yb4<yc1_2))      )                 {                     chkc1=1;                     result+=5;                     coinsong.start();                 }                  if(     ((xb1>xc2_4)&&(xb1<xc2_2))&&((yb1>yc2_4)&&(yb1<yc2_2))||                         ((xb2>xc2_4)&&(xb2<xc2_2))&&((yb2>yc2_4)&&(yb2<yc2_2)) ||                         ((xb3>xc2_4)&&(xb3<xc2_2))&&((yb3>yc2_4)&&(yb3<yc2_2)) ||                         ((xb4>xc2_4)&&(xb4<xc2_2))&&((yb4>yc2_4)&&(yb4<yc2_2))      )                 {                     chkc2=1;                     coinsong.start();                     result+=5;                 }                  if(     ((xb1>xc3_4)&&(xb1<xc3_2))&&((yb1>yc3_4)&&(yb1<yc3_2))||                         ((xb2>xc3_4)&&(xb2<xc3_2))&&((yb2>yc3_4)&&(yb2<yc3_2)) ||                         ((xb3>xc3_4)&&(xb3<xc3_2))&&((yb3>yc3_4)&&(yb3<yc3_2)) ||                         ((xb4>xc3_4)&&(xb4<xc3_2))&&((yb4>yc3_4)&&(yb4<yc3_2))      )                 {                     chkc3=1;                     result+=5;                     coinsong.start();                 }                  if(     ((xb1>xc4_4)&&(xb1<xc4_2))&&((yb1>yc4_4)&&(yb1<yc4_2))||                         ((xb2>xc4_4)&&(xb2<xc4_2))&&((yb2>yc4_4)&&(yb2<yc4_2)) ||                         ((xb3>xc4_4)&&(xb3<xc4_2))&&((yb3>yc4_4)&&(yb3<yc4_2)) ||                         ((xb4>xc4_4)&&(xb4<xc4_2))&&((yb4>yc4_4)&&(yb4<yc4_2))      )                 {                     chkc4=1;                     coinsong.start();                     result+=5;                 }                  if(     ((xb1>xc5_4)&&(xb1<xc5_2))&&((yb1>yc5_4)&&(yb1<yc5_2))||                         ((xb2>xc5_4)&&(xb2<xc5_2))&&((yb2>yc5_4)&&(yb2<yc5_2)) ||                         ((xb3>xc5_4)&&(xb3<xc5_2))&&((yb3>yc5_4)&&(yb3<yc5_2)) ||                         ((xb4>xc5_4)&&(xb4<xc5_2))&&((yb4>yc5_4)&&(yb4<yc5_2))      )                 {                     result+=5;                     chkc5=1;                     coinsong.start();                 }                  if(     ((xb1>xc6_4)&&(xb1<xc6_2))&&((yb1>yc6_4)&&(yb1<yc6_2))||                         ((xb2>xc6_4)&&(xb2<xc6_2))&&((yb2>yc6_4)&&(yb2<yc6_2)) ||                         ((xb3>xc6_4)&&(xb3<xc6_2))&&((yb3>yc6_4)&&(yb3<yc6_2)) ||                         ((xb4>xc6_4)&&(xb4<xc6_2))&&((yb4>yc6_4)&&(yb4<yc6_2))      )                 {                     result+=5;                     chkc6=1;                     coinsong.start();                 }                  if(     ((xb1>xc7_4)&&(xb1<xc7_2))&&((yb1>yc7_4)&&(yb1<yc7_2))||                         ((xb2>xc7_4)&&(xb2<xc7_2))&&((yb2>yc7_4)&&(yb2<yc7_2)) ||                         ((xb3>xc7_4)&&(xb3<xc7_2))&&((yb3>yc7_4)&&(yb3<yc7_2)) ||                         ((xb4>xc7_4)&&(xb4<xc7_2))&&((yb4>yc7_4)&&(yb4<yc7_2))      )                 {                     result+=5;                     chkc7=1;                     coinsong.start();                 }                   if(     ((xb1>xc8_4)&&(xb1<xc8_2))&&((yb1>yc8_4)&&(yb1<yc8_2))||                         ((xb2>xc8_4)&&(xb2<xc8_2))&&((yb2>yc8_4)&&(yb2<yc8_2)) ||                         ((xb3>xc8_4)&&(xb3<xc8_2))&&((yb3>yc8_4)&&(yb3<yc8_2)) ||                         ((xb4>xc8_4)&&(xb4<xc8_2))&&((yb4>yc8_4)&&(yb4<yc8_2))      )                 {                     result+=5;                     coinsong.start();                     chkc8=1;                 }                  if(     ((xb1>xc9_4)&&(xb1<xc9_2))&&((yb1>yc9_4)&&(yb1<yc9_2))||                         ((xb2>xc9_4)&&(xb2<xc9_2))&&((yb2>yc9_4)&&(yb2<yc9_2)) ||                         ((xb3>xc9_4)&&(xb3<xc9_2))&&((yb3>yc9_4)&&(yb3<yc9_2)) ||                         ((xb4>xc9_4)&&(xb4<xc9_2))&&((yb4>yc9_4)&&(yb4<yc9_2))      )                 {                     result+=5;                     coinsong.start();                     chkc9=1;                 }                  if(     ((xb1>xc10_4)&&(xb1<xc10_2))&&((yb1>yc10_4)&&(yb1<yc10_2))||                         ((xb2>xc10_4)&&(xb2<xc10_2))&&((yb2>yc10_4)&&(yb2<yc10_2)) ||                         ((xb3>xc10_4)&&(xb3<xc10_2))&&((yb3>yc10_4)&&(yb3<yc10_2)) ||                         ((xb4>xc10_4)&&(xb4<xc10_2))&&((yb4>yc10_4)&&(yb4<yc10_2))      )                 {                     result+=5;                     coinsong.start();                     chkc10=1;                 }                  if(     ((xb1>xc11_4)&&(xb1<xc11_2))&&((yb1>yc11_4)&&(yb1<yc11_2))||                         ((xb2>xc11_4)&&(xb2<xc11_2))&&((yb2>yc11_4)&&(yb2<yc11_2)) ||                         ((xb3>xc11_4)&&(xb3<xc11_2))&&((yb3>yc11_4)&&(yb3<yc11_2)) ||                         ((xb4>xc11_4)&&(xb4<xc11_2))&&((yb4>yc11_4)&&(yb4<yc11_2))      )                 {                     result+=5;                     coinsong.start();                     chkc11=1;                 }                  if(     ((xb1>xc12_4)&&(xb1<xc12_2))&&((yb1>yc12_4)&&(yb1<yc12_2))||                         ((xb2>xc12_4)&&(xb2<xc12_2))&&((yb2>yc12_4)&&(yb2<yc12_2)) ||                         ((xb3>xc12_4)&&(xb3<xc12_2))&&((yb3>yc12_4)&&(yb3<yc12_2)) ||                         ((xb4>xc12_4)&&(xb4<xc12_2))&&((yb4>yc12_4)&&(yb4<yc12_2))      )                 {                     result+=5;                     coinsong.start();                     chkc12=1;                 }          // ball coordinates                 xb1=ballx;                 xb2=ballx+ball.getwidth();                 xb3=ballx;                 xb4=ballx+ball.getwidth();                 yb1=bally;                 yb2=bally;                 yb3=bally-ball.getheight();                 yb4=bally-ball.getwidth();          //eat coordinates                  xe1=eatx;                 xe2=eatx+eat.getwidth();                 xe3=eatx+eat.getwidth();                 xe4=eatx;                 ye1=eaty;                 ye2=eaty;                 ye3=eaty-eat.getheight();                 ye4=eaty-eat.getheight();                  xe11=eatx2;                 xe22=eatx2+eat.getwidth();                 xe33=eatx2+eat.getwidth();                 xe44=eatx2;                 ye11=eatt;                 ye22=eatt;                 ye33=eatt-eat.getheight();                 ye44=eatt-eat.getheight();      // ball touching eat                  if(     ((xb1>xe4)&&(xb1<xe2))&&((yb1>ye4)&&(yb1<ye2))||                         ((xb2>xe4)&&(xb2<xe2))&&((yb2>ye4)&&(yb2<ye2)) ||                         ((xb3>xe4)&&(xb3<xe2))&&((yb3>ye4)&&(yb3<ye2)) ||                         ((xb4>xe4)&&(xb4<xe2))&&((yb4>ye4)&&(yb4<ye2))      )                 {                     intent menu = new intent(game.this,score.class);                     menu.addflags(intent.flag_activity_clear_top);                     startactivity(menu);                     finish();                 }                 else                     canvas.drawbitmap(ball, ballx,bally, null);                  if(     ((xb1>xe44)&&(xb1<xe22))&&((yb1>ye44)&&(yb1<ye22))||                         ((xb2>xe44)&&(xb2<xe22))&&((yb2>ye44)&&(yb2<ye22)) ||                         ((xb3>xe44)&&(xb3<xe22))&&((yb3>ye44)&&(yb3<ye22)) ||                         ((xb4>xe44)&&(xb4<xe22))&&((yb4>ye44)&&(yb4<ye22))      )                 {                     intent menu = new intent(game.this,score.class);                     menu.addflags(intent.flag_activity_clear_top);                     startactivity(menu);                     finish();                 }                 else                     canvas.drawbitmap(ball, ballx,bally, null);            // finish coordinate                   fx1=0;                 fx2=5;                 fx3=0+finish.getwidth();                 fx4=0;                 fy1=350;                 fy2=350;                 fy3=350+finish.getheight();                 fy4=400;          // touching finish                 if(     ((xb1>fx4)&&(xb1<fx2))&&((yb1>fy4)&&(yb1<fy2))||                         ((xb2>fx4)&&(xb2<fx2))&&((yb2>fy4)&&(yb2<fy2)) ||                         ((xb3>fx4)&&(xb3<fx2))&&((yb3>fy4)&&(yb3<fy2)) ||                         ((xb4>fx4)&&(xb4<fx2))&&((yb4>fy4)&&(yb4<fy2))      )                 {                     intent nextscreen = new intent(game.this,lvl_2.class);                     nextscreen.addflags(intent.flag_activity_clear_top);                     startactivity(nextscreen);                     finish();                 }                 else                     canvas.drawbitmap(ball, ballx,bally, null);                   eaty=eaty+2;                 eaty2=eaty-2;                 eatx=eatx+1;                 eatx2=eatx2-1;                  if(eaty>canvas.getheight()){                      eaty=0;                 }                 if(eatx>canvas.getwidth()){                     eatx=0;                 }                 if(eatx2<0){                     eatx2=canvas.getwidth();                 }                 if(eaty2<0){                     eaty2=canvas.getwidth();                 }                  my_holder.unlockcanvasandpost(canvas);             }         }     }      @override     public void onbackpressed() {         // todo auto-generated method stub         super.onbackpressed();         intent menu = new intent(game.this,menu.class);         menu.addflags(intent.flag_activity_clear_top);         startactivity(menu);     }     @suppresswarnings("deprecation")     @override     protected void oncreate(bundle savedinstancestate) {         // todo auto-generated method stub         super.oncreate(savedinstancestate);           // full screen          requestwindowfeature(window.feature_no_title);         getwindow().setflags(windowmanager.layoutparams.flag_fullscreen,          windowmanager.layoutparams.flag_fullscreen);          //wake-lock         powermanager pm = (powermanager) getsystemservice(context.power_service);         wl = pm.newwakelock(powermanager.full_wake_lock, "whatever");         wl.acquire();          sm = (sensormanager) getsystemservice(context.sensor_service);         if (sm.getsensorlist(sensor.type_accelerometer).size()!= 0){             sensor s= sm.getsensorlist(sensor.type_accelerometer).get(0) ;             sm.registerlistener(this , s,sensormanager.sensor_delay_game);         }         finish=bitmapfactory.decoderesource(getresources(), r.drawable.home);         ball = bitmapfactory.decoderesource(getresources(), r.drawable.ball);         //wallp = bitmapfactory.decoderesource(getresources(), r.drawable.lvl1_bck);         eat = bitmapfactory.decoderesource(getresources(),r.drawable.rev);         eat1 = bitmapfactory.decoderesource(getresources(),r.drawable.ur2l5);         coin= bitmapfactory.decoderesource(getresources(),r.drawable.coins);         coin1= bitmapfactory.decoderesource(getresources(),r.drawable.coins);         coin2= bitmapfactory.decoderesource(getresources(),r.drawable.coins);         coin3= bitmapfactory.decoderesource(getresources(),r.drawable.coins);         coin4= bitmapfactory.decoderesource(getresources(),r.drawable.coins);         coin5= bitmapfactory.decoderesource(getresources(),r.drawable.coins);         coin6= bitmapfactory.decoderesource(getresources(),r.drawable.coins);         coin7= bitmapfactory.decoderesource(getresources(),r.drawable.coins);         coin8= bitmapfactory.decoderesource(getresources(),r.drawable.coins);         coin9= bitmapfactory.decoderesource(getresources(),r.drawable.coins);         coin10= bitmapfactory.decoderesource(getresources(),r.drawable.coins);         coin11= bitmapfactory.decoderesource(getresources(),r.drawable.coins);          x=y=sensorx=sensory=0;         eatx=0;         eaty=5;         //x=y=sensorx=sensory=0;         game_surface = new mysurface(this);         game_surface.resume();         setcontentview(game_surface);         timertask task = new timertask(){public void run() {             intent it=new intent(game.this,lvl_2.class);             startactivity(it);             }         };         timer t=new timer();         t.schedule(task, 5*1000);           coinsong = mediaplayer.create(game.this,r.raw.coins);      }      @override     public void onaccuracychanged(sensor arg0, int arg1) {         // todo auto-generated method stub      }      @override     public void onsensorchanged(sensorevent e) {         // todo auto-generated method stub          if(chk==1)         {              sencurrx=e.values[0];             sencurry=e.values[1];             chk=2;         }         try {             thread.sleep(5);         } catch (interruptedexception e1) {             // todo auto-generated catch block             e1.printstacktrace();         }          sensorx = e.values[0]-sencurrx;         sensory = e.values[1]-sencurry;      }      @override     protected void onpause() {         // todo auto-generated method stub          super.onpause();         coinsong.release();         sm.unregisterlistener(this);         wl.release();         finish();     }     public void onactivityresult(int requestcode, int resultcode, intent intent) {          if (requestcode == 1)         {             if (resultcode == 1) {                 intent = getintent();                 overridependingtransition(0, 0);                 i.addflags(intent.flag_activity_no_animation);                 finish();                  overridependingtransition(0, 0);                 startactivity(i);             }         }     }  } 

i think crash caused code:

intent menu = new intent(game.this,score.class);                     menu.addflags(intent.flag_activity_clear_top);                     startactivity(menu);                     finish(); 

why did put startactivity in thread not main thread? should use handler send message main thread start new activity.


Comments

Popular posts from this blog

c++ - End of file on pipe magic during open -

basic authentication with http post params android -

data.table making a copy of table in R -