我試圖在使用Intent
附加組件的Activity
實例之間傳遞一小段文本。即使在更新時,意向附加組件仍然保持不變
無論何時使用後退按鈕或操作欄中的導航在他們之間導航時,這似乎都能正常工作。但是,如果我訪問主屏幕然後重新啓動應用程序,傳遞的附加內容將被忽略;第二個Activity
似乎使用舊的Intent
,而不是新的。
相關的代碼:
源活動
public class ActivityA extends Activity {
protected void goToResults(String results) {
Intent intent = new Intent(this, ActivityB.class);
intent.putExtra(Intent.EXTRA_TEXT, results);
startActivity(intent);
}
}
目的地活動
public class ActivityB extends Activity {
@Override
public void onResume() {
super.onResume();
Bundle extras = getIntent().getExtras();
String results = extras.getString(Intent.EXTRA_TEXT);
// etc
}
}
我已經嘗試了一些不同的東西,包括:
intent.setAction("action-" + UNIQUE_ID);
(因爲據我所知,Intent
情況下不會被額外的內容相比)
PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
(我不需要PendingIntent
,但認爲這可能迫使Intent
更新)
任何建議如何強制Intent
每次從ActivityA
- >ActivityB
轉換時顯示更改的數據,而不管我是使用後退按鈕還是轉向主屏幕?
實現'onNewIntent'做到了。謝謝! (PS,任何人都知道爲什麼這是必要的?) – squidpickles
我猜這是因爲活動實際上並未重新啓動,因爲它還活着。對我來說,用最近的一個替換意圖似乎是合乎邏輯的(這導致它最近啓動)。但我想這樣你可以保留原來的意圖,並檢查出新的。 – Lauw