2012-07-31 57 views
0

我有這兩種方法,當我發現「something1 *」時暫停此主要活動,然後在主要活動暫停時更改爲someactivity1 *。但我的問題是,它不會改變我的活動,它會凍結我的主要活動,而且它不會做任何其他事情。這是可能的,因爲我摧毀了線程,但我看不到任何解決方案,我不確定。 (該方法2是一個循環中) 對不起我的英語水平,並感謝幫助Android java活動

public void method1(){ 

     super.onPause(); 
     run = false; 
     while(){ 
     try{ 
      thread.join(); 
     }catch(InterruptedException e){ 
      e.printStackTrace(); 
     } 
    } 

     thread1 = null; 

    Intent i = new Intent(someactivity1*); 
    startActivity(i); 

    } 

    //the method2 is inside a loop 
    public void method2(){ 

    if(something1*){ 

     onPause(); 

    } 

    } 
+0

我不知道你想做什麼,但這段代碼是各種各樣的壞... – Jug6ernaut 2012-07-31 19:55:12

回答

0

你說thread.join()。這使得主線程(也稱爲UI線程)等待稱爲thread的線程完成。換句話說,你正在鎖定你的應用程序。

爲什麼你想管理暫停你的應用程序呢? Android自己管理一切。只需開始活動,除YourActivity.onPause()之外,不要在您的方法中的任何地方撥打onPause()

0

你絕對不應該打電話onPause。這是一個os回調方法。

0

這不是你,你的活動暫停,但操作系統,所以你不必調用onPause()方法。

我想你應該簡單地開始其他活動,當「事情」發生時,以前的活動暫停。 希望得到這個幫助。