[英]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.