最新,開發項目就遇到這個問題。爲了保持兩個Activity原來的狀態,而又須要傳值,解決這個問題仍是很簡單:html
爲了避免讓Activity 新生成通常要加intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);ide
它表示你跳轉的activity若是第一次生成了之後就不在生成了。因此,根據activity的生命週期(這個大家能夠本身去跟斷點),每次進入activity執行onResume方法,spa
@Override
protected void onResume() {
Log.i("onResume1111111111111111", "onResume");
Bundle b = getIntent().getExtras();
labelcontent = b.getString("addLabel");
labelNumber = b.getInt("num");
isAgainLoad = b.getBoolean("isAgainLoad");
super.onResume();
};.net
而後重寫onNewIntent方法,這個方法就是在不onDestroy activity的同時,可以傳值orm
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}htm
////////////////////////////////////////////////////////////////////////////////////////////
blog
onCreate是用來建立一個Activity也就是建立一個窗體,但一個Activty處於任務棧的頂端,若再次調用startActivity去創 建它,則不會再次建立。若你想利用已有的Acivity去處理別的Intent時,你就能夠利用onNewIntent來處理。在onNewIntent 裏面就會得到新的Intent.生命週期
[html] view plaincopyci
@Override 開發
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
}
若是IntentActivity處於任務棧的頂端,也就是說以前打開過的Activity,如今處於onPauseonStop 狀態的話其餘應用再發送Intent的話,執行順序爲:onNewIntentonRestartonStartonResume