Я пытаюсь непрерывно отправлять данные другому действию, используя намерение.
В первом действии
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);
}
}
}
При отладке оба потока выполняются, но условия if внутри while (true) не выполняются.
Примечание. Когда Before StartActivityForResult (), putExtra отправляет данные, а в secondActivity я мог получить данные.
Скажите, пожалуйста, почему данные не отправляются и не принимаются как в doInbackground ().
Нет, я проверял, всегда есть строка.




When Debugging, both threads are executing but the if-conditions inside while(true) are not satisfied.
Посмотрите на опубликованный вами код, это потому, что оба AsyncTask работают одновременно и, следовательно, при получении Asynctask переходит на doInBackground(), он не нашел значений Intent. Вам лучше отложить выполнение вашего второго AsyncTask.
С другой стороны, я настоятельно рекомендую изменить ваш подход, так как это приведет к множеству проблем в будущем. Есть другой лучший способ общения между двумя видами деятельности.
Я ввел задержку, но во втором действии данные по-прежнему не поступают. Скажите, пожалуйста, ваше предложение о взаимодействии между двумя видами деятельности.
есть ли вероятность, что
dataBufferстанет нулевым?