2012-08-05 82 views
0

我有一個變量,我已將它設置爲3.每次單擊按鈕時,它都會遞減並執行所需的操作。當它達到0時,我希望動作應該在屏幕上顯示一段時間,然後移動到新的活動。執行完動作後,如何延遲新動作的開始?

但問題是,當它達到0它不保持一段時間,用戶看到執行什麼操作,它只是跳轉到下一頁... 有沒有辦法做到這一點?

我正在使用的代碼是:

if(ch==0) 
{ 
try { 

     Thread.sleep(15*1000); 
    startActivity(new Intent("com.example.quizproject.Menu")); 
} catch (InterruptedException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
} 

使用此代碼後,該變量爲0時,它不會結束以前的行動,而暫停,然後移動到下一個活動。

這個問題的任何可能的解決方案?

回答

0

爲什麼你想要線程睡覺?您將查看主線程,並且由於線程(睡眠)位於Intent之前,用戶將不會進入Intent。

這就是爲什麼。

這樣:

while (ch <=0) { 
Intent i = new Intent (this, menu.class); 
startActivity(i); 
} 
+0

我在寫一個應用程序的問題即時得到是我想要開始在同一個活動下一步的行動之前等待....我用戶後進行測驗選擇一個選項,我想等待一秒鐘顯示答案,然後下一個問題arives .....但用戶無法立即看到答案它移動到下一個問題...所以如何創建一個延遲下一個問題... ... – user1568346 2012-08-05 15:36:01

+0

只需顯示一個進度條與異步?我不推薦等待,但可以強制用戶按住後退按鈕,然後繼續前進到下一個問題。與往常一樣,如果您覺得我的回答內容豐富,請按我的答案打勾。 – TheBlueCat 2012-08-05 17:26:25

+0

我使用dis n其工作....創建2秒延遲。 Handler handler = new Handler(); handler.postDelayed(新的Runnable(){ 公共無效的run(){ my_button.setBackgroundResource(R.drawable.defaultcard); } },2000); 謝謝你的建議 – user1568346 2012-08-05 17:30:53

2

您可以創建一個類繼承Thread,例如MyThread

public class MyThread extends Thread { 

    SampleActivity sampleActivity; 

    public MyThread(SampleActivity sampleActivity){ 
     this.sampleActivity = sampleActivity; 
    } 



     public void run() { 
      try { 
       sleep(15*1000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 

      Intent i = new Intent(this.sampleActivity, Asleep.class); 
      sampleActivity.startActivity(i); 
     } 

}  

編輯
然後,當你想啓動活動中使用它,在這裏sampleActivity是第一個活動(第一個問題),Asleep是15秒後出現的活動(第二個問題)。例如,在click click在sampleActivity按鈕NER這樣做:

MyThread mt = new MyThread(this); 
mt.start(); 
+0

我正在做一個應用程序,我得到的問題是我想在開始同一活動中的下一個動作之前等待....我在用戶選擇一個選項之後進行測驗,我想等待一秒鐘以顯示答案並且那麼接下來的問題將得到改善.....但用戶無法立即看到答案,它將轉移到下一個問題......所以如何爲下一個問題創建延遲... – user1568346 2012-08-05 15:33:14

+0

@ user1568346請參閱我的編輯。 – hasanghaforian 2012-08-05 16:14:19

+0

我使用DIS的工作....創造了2秒的延遲。 Handler handler = new Handler(); handler.postDelayed(新的Runnable(){ 公共無效的run(){ my_button.setBackgroundResource(R.drawable.defaultcard); } },2000); 謝謝你的建議 – user1568346 2012-08-05 17:31:23