2015-01-31 44 views
1
Intent goMain = new Intent(getBaseContext(),MainActivity.class); 

goMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
goMain.putExtras(extras); 
getApplicationContext().startActivity(goMain); 

將數據發送至mainactivity我想要做的是,從單獨的IntentService發送數據O唯一MainActivity。發生了什麼,我不希望它發生的是帶來一個新的活動,而不是當前運行的活動。另外,當前正在運行的活動不顯示從intentservice發送的數據。當我嘗試刪除FLAG_ACTIVITY_NEW_TASK時,「從Activity上下文外調用startActivity()需要FLAG_ACTIVITY_NEW_TASK標誌」錯誤。誰能幫我這個? 在此先感謝。從單獨的意圖

回答

2

使用Intent.FLAG_ACTIVITY_CLEAR_TASK正在導致您的問題。如果你想使用Activity的現有實例,使用此標誌集:

goMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
      Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); 

設置Intent.FLAG_ACTIVITY_CLEAR_TOP將是對MainActivity頂部的任務堆棧中刪除的任何其他活動。

設置Intent.FLAG_ACTIVITY_SINGLE_TOP將確保將使用MainActivity的現有實例,並且不會創建新的實例。

MainActivity.onNewIntent()將與您使用的Intent一起調用。