Я совершенно новичок в приложении Java и Android.
Мне нужно изменить эту функцию, чтобы код внутри цикла запускал синхронный. < /p>
public synchronized void testListwrite() {
//progressDialog = new CustomProgressDialog(mActivity, MSG_WRITE);
//progressDialog.show();
if (mConnectedReader == null || !mConnectedReader.isConnected()) {
Toast.makeText(mActivity.getApplicationContext(), "No Active Connection with Reader", Toast.LENGTH_SHORT).show();
//progressDialog.dismiss();
}
Fragment fragment = mActivity.getCurrentFragment(RFID_TAB);
//Integer counter = 1
for (Map.Entry entry : Application.inventoryList.entrySet()) {
free=0;
System.out.println("Key: " + entry.getKey() + ". Value: " + entry.getValue());
//accessOperationsWrite
final String tagValue = entry.getKey();
final String accessRWpassword = "00";
final String accessRWData = "12345678";
final String offsetText = "0";
final String lengthText = "2";
final String bankItem = "KILL PASSWORD";
final Integer pos = entry.getValue();
RFIDController.getInstance().accessOperationsWrite(tagValue, offsetText, lengthText, accessRWData, accessRWpassword, bankItem,
new RfidListeners() {
@Override
public void onSuccess(Object object) {
//progressDialog.dismiss();
startbeepingTimer();
Toast.makeText(mActivity.getApplicationContext(), mActivity.getString(R.string.msg_write_succeed), Toast.LENGTH_SHORT).show();
@Override
public void onFailure(Exception exception) {
//progressDialog.dismiss();
if (exception instanceof InvalidUsageException) {
sendNotification(Constants.ACTION_READER_STATUS_OBTAINED, ((InvalidUsageException) exception).getInfo());
} else if (exception instanceof OperationFailureException) {
sendNotification(Constants.ACTION_READER_STATUS_OBTAINED, ((OperationFailureException) exception).getResults().toString());
}
}
@Override
public void onFailure(String message) {
//progressDialog.dismiss();
Toast.makeText(mActivity.getApplicationContext(), message, Toast.LENGTH_SHORT).show();
}
});
}
}
< /code>
Я попытался положить цикл ожидания, но он блокируется, возможно, приостановленная поток - это то же самое, запуская функцию CALL. < /p>
public synchronized void withPause() {
//progressDialog = new CustomProgressDialog(mActivity, MSG_WRITE);
//progressDialog.show();
if (mConnectedReader == null || !mConnectedReader.isConnected()) {
Toast.makeText(mActivity.getApplicationContext(), "No Active Connection with Reader", Toast.LENGTH_SHORT).show();
//progressDialog.dismiss();
}
Fragment fragment = mActivity.getCurrentFragment(RFID_TAB);
//Integer counter = 1
for (Map.Entry entry : Application.inventoryList.entrySet()) {
free=0;
System.out.println("Key: " + entry.getKey() + ". Value: " + entry.getValue());
//accessOperationsWrite
final String tagValue = entry.getKey();
final String accessRWpassword = "00";
final String accessRWData = "12345678";
final String offsetText = "0";
final String lengthText = "2";
final String bankItem = "KILL PASSWORD";
final Integer pos = entry.getValue();
RFIDController.getInstance().accessOperationsWrite(tagValue, offsetText, lengthText, accessRWData, accessRWpassword, bankItem,
new RfidListeners() {
@Override
public void onSuccess(Object object) {
//progressDialog.dismiss();
startbeepingTimer();
Toast.makeText(mActivity.getApplicationContext(), mActivity.getString(R.string.msg_write_succeed), Toast.LENGTH_SHORT).show();
@Override
public void onFailure(String message) {
//progressDialog.dismiss();
free = 1;
Toast.makeText(mActivity.getApplicationContext(), message, Toast.LENGTH_SHORT).show();
}
});
//
}
@Override
public void onFailure(Exception exception) {
//progressDialog.dismiss();
free = 1;
if (exception instanceof InvalidUsageException) {
sendNotification(Constants.ACTION_READER_STATUS_OBTAINED, ((InvalidUsageException) exception).getInfo());
} else if (exception instanceof OperationFailureException) {
sendNotification(Constants.ACTION_READER_STATUS_OBTAINED, ((OperationFailureException) exception).getResults().toString());
}
}
@Override
public void onFailure(String message) {
//progressDialog.dismiss();
free = 1;
Toast.makeText(mActivity.getApplicationContext(), message, Toast.LENGTH_SHORT).show();
}
});
SleepTimeout = 0;
while ((free==0) || (SleepTimeout
есть у кого -нибудь предложение решить проблему?
Большое спасибо. < /p>
Подробнее здесь: https://stackoverflow.com/questions/795 ... va-android
Запуск функций Async в синхронном режиме (Java - Android) ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение