2012-11-19 90 views
1

我使用此代碼重新啓動我的活動:爲什麼我無法重新啓動使用REORDER_TO_FRONT標誌啓動的活動?

public void refreshActivity() 
{ 
    final Intent intent = this.getIntent(); 
    this.overridePendingTransition(0, 0); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
    this.finish(); 

    this.overridePendingTransition(0, 0); 
    this.startActivity(intent); 
} 

它工作得很好。但是,如果我的當前活動是使用FLAG_ACTIVITY_REORDER_TO_FRONT啓動的,則無法啓動。

我發現this:但我認爲這不是我的情況,因爲我沒有用FLAG_ACTIVITY_REORDER_TO_FRONT重新啓動當前活動。

UPDATE: 我可以重新啓動我的活動,通過明確地告訴活動的名字,像這樣:

this.finish(); 

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

但我需要我的意圖的訪問讓他的所有參數(這是需要正確加載活動)。

回答

0

在致電startActivity()之前,您應該清除FLAG_ACTIVITY_REORDER_TO_FRONT標誌。像這樣:

final Intent intent = this.getIntent(); 
intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
this.overridePendingTransition(0, 0); 
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
this.finish(); 

this.overridePendingTransition(0, 0); 
this.startActivity(intent); 
相關問題