繁体   English   中英

intent.getextra()接收到null并且intent.hasextra()在第二个活动中不起作用

[英]intent.getextra() is receiving null and intent.hasextra() is not working in the second activity

我试图使用意图将数据连续发送到另一个活动。

在第一个活动中

MainActivity.java

class sender extends AsyncTask <void, void, void>
{       
   @Override
   protected Void doInBackground(Void... params) {
   {
      while(true)
      {
           if(!intent.hasextra())
           {
                String data = dataBuffer;
                intent.putextra(EXTRA_MESSAGE,data);  
           }
       }
   }
    @Override
    protected void onPreExecute() {
         //  intent.putextra(EXTRA_MESSAGE,"Test data"); --> This is working 
         startActivityForResult(intent, 333);

    }

}

SecondActivity.java

class receiver extends AyncTask <void, void, void>
{
    while(true)
    {
         if(intent.hasextra())
          {
             resultString = intent.getextra(MainActivity.EXTRA_MESSAGE);
             mHandler.obtainMessage(MESSAGE_READ,resultString 
                                             ).sendToTarget();
             intent.removExtra(MainActivity.EXTRA_MESSAGE);
          }
    }
}

调试时,两个线程都在执行,但是while(true)内部的if条件不满足。

注意:在StartActivityForResult()之前,putExtra正在发送数据,并且在secondActivity中我可以接收数据。

请告诉我为什么在doInbackground()中都不会发送和接收数据。

调试时,两个线程都在执行,但是while(true)内部的if条件不满足。

查看您发布的代码,这是因为您的两个AsyncTask正在同时运行,因此在接收Asynctask进入doInBackground()它没有找到Intent值。 您最好要延迟第二个AsyncTask的执行。

另一方面,我强烈建议您更改方法,因为这将来会导致很多问题。 在两个活动之间还有其他更好的通信方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM