나는 채팅 응용 프로그램을 가지고 있습니다. 나는 while (true)를 사용하는 반면 한 번만 메시지를 보내야합니다. 이 루프 메시지가 반복해서 전송되기 때문입니다. 메시지가 한 번만 전송되면 while 루프를 중단시킬 수 있습니까? 그 메시지는 반복해서 보내서는 안됩니다. 내 sendMessage 첨부 AsyncTask를메시지를 보내는 동안 안드로이드 스튜디오에서 while 루프를 깨는 방법
while (true) {
String[] jobsNumbers = numbers.toArray(new String[numbers.size()]);
new SendMessage().execute(jobsNumbers);
}
하고 여기에 있습니다 : : 여기
내 코드입니다 당신처럼,이에 대한break;
을 사용할 수 있습니다
private class sendMessage extends AsyncTask<String, Integer, Integer> {
@Override
protected Integer doInBackground(String[] toNumbers) {
totalNumbers = toNumbers.length;
for (i = 0; i < toNumbers.length; i++) {
toNumber = toNumbers[i];
if (countMessagePerDay() >= Integer.parseInt(MaxNoOfMessagePerDay)) {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
sendSMS(toNumber);
this.publishProgress(1);
}
if (randomNo != 0 && isSent) {
databaseHelperClass.updateJobMessageStatus(JobId);
}
}
return toNumbers.length;
}
@Override
protected void onProgressUpdate(Integer... values) {
Toast.makeText(getApplicationContext(), i + "/" + totalNumbers + " :: to " + toNumber, Toast.LENGTH_SHORT).show();
super.onProgressUpdate(values);
}
@Override
protected void onCancelled(Integer integer) {
super.onCancelled(integer);
}
@Override
protected void onPostExecute(Integer integer) {
Toast.makeText(getApplicationContext(), "Message sent!", Toast.LENGTH_LONG).show();
super.onPostExecute(integer);
}
}
가 왜 while 루프를 사용하고 있습니까? –