2013-10-03 101 views
2

我正在製作一個簡單的Android應用程序,其中包含兩項活動。一個MainActivity和一個InfoActivity。我的ActionBar上有一個按鈕,點擊我想打開我的InfoActivity。在我的InfoActivity中,我有一個後退按鈕,它可以刪除我的InfoActivity並再次打開我的MainActivity。我可以在不關閉MainActivity的情況下打開InfoActivity嗎?打開信息沒有關閉的活動主要活動

我從互聯網上解析JSON我的主要活動,我不希望它關閉InfoActivity時再次加載一切。

代碼開放InfoActivity:

private View.OnClickListener onInfoBtnClick = new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Intent intent = new Intent(MainActivity.this, InfoActivity.class); 
      startActivity(intent); 
     } 
    }; 

代碼爲InfoActivity類關閉InfoActivity:使用

Intent i = new Intent(MainActivity.this, InfoActivity.class); 
startActivityForResult(i, 1); 

和infoactivity

private View.OnClickListener onBackBtnClick = new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(InfoActivity.this, MainActivity.class); 
     startActivity(intent); 
    } 
}; 
+1

在你的後退按鈕中點擊放完();而不是意圖 – Aerrow

+0

這麼簡單。非常感謝你! – Jojo

回答

3

我可以在不關閉MainActivity的情況下打開InfoActivity嗎?

不,InfoActivity會在後臺調用前臺和MainActivity,因爲它將處於stopped狀態。問題是,如果你像這樣在InfoActivity中激發Intent,除了舊實例之外,還會有MainActivity的新實例。

將標誌添加到您的Intent調用中以阻止MainActivity的新實例。然後它將從堆棧中調用。

private View.OnClickListener onBackBtnClick = new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(InfoActivity.this, MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(intent); 
    } 
}; 

或簡單的呼叫finish(),就像hamad和Aerrow建議的那樣。然後InfoActivity將被銷燬,MainActivity將從堆棧中調用。

+0

非常感謝! – Jojo

1

開始信息活動只需撥打finish()按鈕點擊不要再開始活動,然後你會回到預先vious活動