2014-06-30 31 views
-1

我在stackoverflow中试过同样的问题,但都没有工作。有人请帮助我。 这是我的代码如何从线程调用另一个活动?

new Thread(new Runnable() { 
         public void run() { 

          try{ 
           CallSoap cs; 
           cs=new CallSoap(); 
           // String resp=cs.Call(); 
           String resp= cs.Call(); 
           ActivateDecive.rslt=resp; 
          }catch(Exception ex) 
          {ActivateDecive.rslt=ex.toString();} 


          if(ActivateDecive.rslt=="0"||ActivateDecive.rslt.equals("0")) 
          { 
           //Toast.makeText(getBaseContext(), "Device is not in active state..Please contact admin",Toast.LENGTH_LONG).show(); 
           ActivationText.post(new Runnable() { 

            @Override 
            public void run() { 
             // TODO Auto-generated method stub 
             ActivationText.setText("Device is not in active state..Please contact admin"); 
            } 
           }); 

          } 
          else 
          { 
           Handler handler = new Handler(Looper.getMainLooper()); 
           handler.postDelayed(new Runnable() { 

             @Override 
             public void run() { 
              // TODO Auto-generated method stub 
              ActivationText.setText("Device is Active"); 
              Intent i=new Intent(ActivateDecive.this,FormSelectionACT.class); 

              startActivity(i); 
             } 
            }, 2000); 

          } 

         } 
        }).start(); 

活动是不是对正在添加上面只包含布局显示...

+0

任何的logcat你能说明什么?你还看过runOnUiThread,看看它是否适用于你? –

+0

谢谢你回答..我尝试过...但仍然没有工作....有没有在logcat reeor。 – Abhi

回答

0

你必须开始从主线程的活动。像这样做:

Handler handler = new Handler(Looper.getMainLooper()); 

handler.post(new Runnable() { 
    @Override 
    public void run() { 
     Intent intent = new Intent (MyActivity.this, NextActivity.class); 
     startActivity(intent); 
    } 
}); 

从这里取:How to start an activity from a thread class in android?

编辑否则尽量处理程序变量设置为全球性的,所以它应该是这样的。

public class MyActivity extends Activity 
{ 
    Handler hander = new Handler(){ 
     public void handleMessage(Message m){ 
      Intent intent = new Intent (MyActivity.this, Next.class); 
      startActivity(intent); 
     } 
    }; 
    pubilc void onCreate(Bundle ic) 
    { 
     //your code setContentView() etc.... 
     Thread toRun = new Thread() 
     { 
       public void run() 
       { 
        hander.sendMessage(1); 
       } 
     } 
     toRun.start(); 
    } 
} 
+0

我试过这个但仍然不工作... – Abhi

+0

编辑答案 – mapodev

+0

仍然是同样的活动没有显示布局。 – Abhi

0

通过添加完成您的处理方法:

ActivateDecive.this.finish(); 

下面

startActivity(i); 
+0

仍然不工作...不显示其他活动... – Abhi

+0

谢谢你...现在它的工作.... – Abhi

相关问题