关于两个activity传值问题(不是新生成的两个activity) intent getdata

最新,开发项目就遇到这个问题。为了保持两个Activity原来的状态,而又需要传值,解决这个问题还是很简单:

      为了不让Activity 新生成一般要加intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

    它表示你跳转的activity如果第一次生成了以后就不在生成了。所以,根据activity的生命周期(这个你们可以自己去跟断点),每次进入activity执行onResume方法,

@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();
 };

 

然后重写onNewIntent方法,这个方法就是在不onDestroy activity的同时,能够传值

@Override
 protected void onNewIntent(Intent intent) {
 
  super.onNewIntent(intent);
  setIntent(intent); 
  
 }

////////////////////////////////////////////////////////////////////////////////////////////

onCreate是用来创建一个Activity也就是创建一个窗体,但一个Activty处于任务栈的顶端,若再次调用startActivity去创 建它,则不会再次创建。若你想利用已有的Acivity去处理别的Intent时,你就可以利用onNewIntent来处理。在onNewIntent 里面就会获得新的Intent.

[html] view plaincopy

  1. @Override  

  2.         protected void onNewIntent(Intent intent) {  

  3.                 // TODO Auto-generated method stub  

  4.                 super.onNewIntent(intent);  

  5.                   

  6.         }  

如果IntentActivity处于任务栈的顶端,也就是说之前打开过的Activity,现在处于
onPause
onStop 状态的话
其他应用再发送Intent的话,执行顺序为:
onNewIntent
onRestart
onStart
onResume


你可能感兴趣的:(关于两个activity传值问题(不是新生成的两个activity) intent getdata)