关于两个activity传值问题(不是新生成的两个activity) intent getdata
关于两个activity传值问题(不是新生成的两个activity) intent getdata
伽罗kapple 发表于3年前
关于两个activity传值问题(不是新生成的两个activity) intent getdata
  • 发表于 3年前
  • 阅读 380
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

最新,开发项目就遇到这个问题。为了保持两个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


共有 人打赏支持
粉丝 23
博文 353
码字总数 7540
×
伽罗kapple
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: