關於兩個activity傳值問題(不是新生成的兩個activity) intent getdata

最新,開發項目就遇到這個問題。爲了保持兩個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

  1. @Override  開發

  2.         protected void onNewIntent(Intent intent) {  

  3.                 // TODO Auto-generated method stub  

  4.                 super.onNewIntent(intent);  

  5.                   

  6.         }  

若是IntentActivity處於任務棧的頂端,也就是說以前打開過的Activity,如今處於onPauseonStop 狀態的話其餘應用再發送Intent的話,執行順序爲:onNewIntentonRestartonStartonResume

相關文章
相關標籤/搜索