2013-01-23 331 views
0

即時通訊在Android上製作遊戲。我需要暫停遊戲,顯示暫停菜單(無論如何通過新的活動或對話),然後恢復遊戲。這就是我如何暫停和恢復我的線程:Android:暫停線程/遊戲,顯示菜單,恢復遊戲/線程?

public void pause() { 
      isRunning = false; 
      while (true) { 
       try { 
        ourThread.join(); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 
       break; 
      } 
      ourThread = null; 
     } 

public void resume() { 
      isRunning = true; 
      ourThread = new Thread(this); 
      ourThread.start(); 
     } 

這工作完全正常,當我去到主屏幕和一切,但即時通訊上如何顯示的菜單和操作它混淆。

回答

1

你有沒有考慮過使用彈出菜單?你可以在暫停()上做一些你showPopup()。然後,您可以點擊屏幕上的任意位置關閉彈出窗口,或者您可以在onMenuItemClick中設置簡歷

這是否合理?

public void showPopup() { 
    // Anchor popoup with layout to "center" menu 
    RelativeLayout layout = (RelativeLayout) findViewById(R.id.menuLayout); 
    PopupMenu popup = new PopupMenu(this, layout); 
    popup.setOnMenuItemClickListener(this); 
    popup.getMenuInflater().inflate(R.layout.menu, popup.getMenu()); 
    popup.show(); 
} 

@Override 
public void onMenuItemClick(MenuItem item) { 
    dosomething(); 
      resume(); 

} 
+0

哦,這是一個不錯的主意生病嘗試。謝謝! –

+0

當前活動保持暫停狀態時,您能否幫助我開始新活動,並在新活動完成時恢復當前活動?這就是我所說的大多數遊戲中使用的暫停菜單。對不起,誤解 –

+1

要清楚,可以使用彈出菜單,而當前活動爲活動作爲背景。然後,一旦用戶點擊一個選項,默認情況下,彈出窗口將被解除,然後您可以同時恢復活動。否則,當你從舊的活動中調用一個新的活動時,我相信當你按下「返回」按鈕時,它將返回到舊的活動並調用onResume()。看到這裏的活動生命週期的更多信息:http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle – Amy

0

單擊設備上的菜單按鈕時調用暫停()。

+0

是的顯然,但如何讓一個暫停菜單出現,並在遊戲中操作在後臺暫停? –

+0

當你點擊Android的菜單按鈕(Android設備有硬件菜單按鈕,通常@左下角) – pvn

+0

不,不,我很抱歉你誤會了。我的意思是創建一個像pause()方法被調用時那樣在遊戲中使用的自定義暫停菜單,然後實現它。或者您可以將其視爲調用新活動,同時保持當前活動在後臺暫停 –