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