2013-03-14 104 views
0

我有兩個activity.First活動完成一個活動是遊戲畫面與暫停鍵和第二項活動是恢復並重新啓動button.When我點擊了遊戲畫面暫停按鈕,然後我去次活動從在那裏,當我點擊重啓按鈕,然後我要完成第一個活動(遊戲畫面),並希望開始新的遊戲,所以這是我的問題是如何完成的第一項活動,請幫我我想從其他活動

+0

只是調用finish(); ..?我不確定你真的在這裏問什麼。 – l46kok 2013-03-14 08:54:57

+0

你確定這是正確的將按鈕分爲單獨的活動?只要看看FragmentDialog – JackTurky 2013-03-14 08:55:43

+0

如果我將完成活動,那麼如何通過暫停按鈕再次調用它,我想要在第二個活動的重新啓動按鈕上完成後再次創建此活動... – deepak22 2013-03-14 09:04:17

回答

1

選項1: 使用片段

選項2: 從第一活動使用startActivityForResult然後當第二活性在onActivityResult完成cathc。那裏完成了第一個活動,然後開始遊戲。

選項3: 發送廣播消息並在第一個活動中接收並完成它。

有可能做出這些點數。只要放下一些在我腦海中立即出現的選項。如果我是你,我會使用選項1

1

這將殺死所有的頂級活動,並啓動新活動新遊戲。

Intent intent = new Intent(getApplicationContext(), NewGame.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
3

建議您在所有活動中註冊一個廣播接收器,並在他們的onReceive()&中使用「finish()」,只要您希望退出,您可以簡單地傳遞意圖表明所有活動都必須關閉.....雖然請確保您在onDestroy()方法中「取消註冊」接收器。

像這樣

  @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     IntentFilter filter = new IntentFilter(); 
     filter.addAction("end"); 
     receiver = new BroadcastReceiver() { 

      @Override 
      public void onReceive(Context context, Intent intent) { 
       // TODO Auto-generated method stub 
       finish(); 
      } 
     }; 
     registerReceiver(receiver, filter); 
} 


    protected void onDestroy() { 
     // TODO Auto-generated method stub 
     super.onDestroy(); 
     unregisterReceiver(receiver); 
    } 

而當你想從另一個活動完成這個只是這樣做

Intent i = new Intent("end"); 
       sendBroadcast(i);