2016-04-26 70 views
0

你好,我有一個小問題,這有點就像一個循環,我的應用程序My imageAndroid的無盡循環的活動

在我提供你可以看到每一個按鈕兩項活動圖像。當按鈕1被按下時,它會帶你進入第二個活動,當按鈕2被按下時,它會讓你活動一個完美的活動。問題是,如果我不斷按下這些按鈕在兩者之間進行導航,那麼大量活動就會像線一樣建立起來,當按下後退按鈕時,您將自動瀏覽所有打開的活動。

  1. 我的問題是我實施的onDestroy方法,如果這樣會怎樣呢?

  2. 我可以重寫後退按鈕讓我直接回到活動一,而不是進一步?如下圖所示

+0

'機器人:noHistory =「真」'---在清單中。請小心隱含的含義,請閱讀文檔。 – Skynet

+0

那麼在你的第二個活動中不要使用Intent就完成了();你的活動,它會關閉你的第二個活動,並恢復第一個活動 –

+0

Rakshit你能舉個例子嗎?這是我目前使用的。 startActivity(new Intent(getApplicationContext(),ContactUsMainActivity.class)); – james

回答

0

貫徹意圖:

Intent intent = new Intent(getApplicationContext(), Home.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

新的活動打開時,之前的活動將被關閉。

0

讓說你要次活動使用以下

button1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent to_second=new Intent(FirstActivity.this,SecondActivity.class); 
      startActivity(to_second); 
     } 
    }); 
在你的第二個活動

現在做以下

button2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      finish(); 
      } 
     }); 

BUTTON2將完成你的第二個活動,並再次簡歷您的第一項活動,你可以再次點擊button1打開第二個活動,並繼續循環。

1

我的問題是我是否實現了一個onDestroy方法,如果是的話會怎麼樣呢?

你可以調用finish()每當你傳遞給下一個活動

Intent intent = new Intent(Activity1.this, Activity2.class); 
startActivity(intent); 
finish(); 

Intent intent = new Intent(Activity2.this, Activity1.class); 
startActivity(intent); 
finish(); 

我可以覆蓋後退按鈕帶我直接回活動 一個並沒有進一步?

Activity2,你可以調用onBackPressedonClick

button2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       onBackPressed(); 
      } 
     }); 
} 
@Override 
public void onBackPressed(){ 
    // do what ever you want before you back to previous activity 
    super.onBackPressed(); 
    // call super.onBackPressed(); or finish(); 
} 
0

好了,你可以在你的AndroidManifest使這兩個活動launchMode="singleInstance"。您可以通過撥打onNewIntent()致電。

不要致電super.onBackPressed(),因爲它會導致finish()被調用,只是開始另一個活動。

您可以使用此解決方案,如果你不需要重新創建活動,否則使用CLEAR_TOP &等