2014-10-31 38 views
0

我有3個活動。 在activity_Second當用戶單擊button_right時,activity_Second將銷燬並啓動activity_Third; again在activity_Second中,當用戶單擊button_left時,activity_Second將銷燬並啓動activity_First。同時點擊兩個按鈕的問題

每件事情都正常工作,直到用戶同時點擊兩個按鈕,然後爆炸,應用程序崩潰。 爲什麼會發生這種情況,我該如何解決這個問題。

注意:我需要銷燬activity_Second,因爲它獲得了一些媒體播放器,並因此產生了很多空間,我需要釋放內存。

這裏是activity_Second Java代碼:

public class Second extends Activity implements OnClickListener{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.second); 

     right = new Intent(getApplicationContext(), Third.class); 
     left = new Intent(getApplicationContext(), First.class); 
     ImageView button_left = (ImageView) findViewById(R.id.button_left); 
     ImageView button_right = (ImageView) findViewById(R.id.button_right); 

     button_left.setOnClickListener(this); 
     button_right.setOnClickListener(this); 

    } 
    @Override 
    public void onClick(View item) { 
     if(item.getId() == R.id.button_left) 
     { 
      left.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(left); 
      this.onDestroy(); 
     } 
     else if(item.getId() == R.id.button_right) 
     { 
      right.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(right); 
      this.onDestroy(); 
     } 
    } 
} 
+1

電話''完成的(),而不是'的onDestroy()'。 – EpicPandaForce 2014-10-31 13:03:16

+0

@Zhuinden謝謝,我測試它,但它仍然崩潰!我甚至評論發佈媒體播放器的所有方面,但沒有成功。 – ZahraZT 2014-10-31 13:15:46

回答

0

嘗試這樣可以幫助你,

public class Second extends Activity implements OnClickListener{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.second); 

     ImageView button_left = (ImageView) findViewById(R.id.button_left); 
     ImageView button_right = (ImageView) findViewById(R.id.button_right); 

     button_left.setOnClickListener(this); 
     button_right.setOnClickListener(this); 

    } 
    @Override 
    public void onClick(View item) { 
     if(item.getId() == R.id.button_left) 
     { 
      Intent left = new Intent(Second.this, First.class); 
      left.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(left); 

      finish(); 
     } 
     else if(item.getId() == R.id.button_right) 
     { 
      Intent right = new Intent(Second.this, Third.class); 
      right.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(right); 

      finish(); 
     } 
    } 
} 
+0

非常感謝你,現在它工作! :) 但爲什麼 ? – ZahraZT 2014-10-31 13:23:18

+0

使用'ApplicationContext'會導致問題?怎麼來的? – EpicPandaForce 2014-10-31 13:59:43