Как показать% progress bar при синхронизации ваших мобильных контактов с сервером с помощью модификации [duplicate]

Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.

например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.

public Class myClass
{
   public int prop1 {get;set;}
}

Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref.prop1 = 1;  //This line throws error
     }
}

выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.

Чтобы исправить это, вам нужно создать экземпляр (присвоить объект ссылке на этот класс).

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref = new myClass();
        ref.prop1 = 1;  
     }
}
3
задан Cristian 10 May 2011 в 14:12
поделиться

2 ответа

Это зависит от типа синхронизации ... например:

  • Если ваш процесс синхронизации состоит из загрузки только 1 файла, который содержит все новые данные (скажем, файл JSON), это легко. Вам просто нужно измерить, сколько из файла вы загрузите (посмотрите этот вопрос Загрузите файл с Android и покажите прогресс в ProgressDialog )
  • Если ваш процесс синхронизации включает загрузку разных файлов (скажем, изображений, текста и т. д.) ... вы можете реализовать индикатор выполнения, в зависимости от того, сколько файлов осталось загрузить (и, надеюсь, сколько они веса).
  • Если вы загружать разные файлы, но они отличаются от одной синхронизации к другой, вы можете сначала задать сервер, сколько файлов будет использовать синхронизация, и размер каждого файла. Затем выполните то же самое, что и выше.

В идеале вы должны учитывать размер файлов, которые вы получаете + количество времени, которое вы тратите, используя их.

2
ответ дан Community 27 August 2018 в 04:01
поделиться

Использовать AsyncTask для подключения.

В preExecute получить размер загружаемого объекта, создать индикатор выполнения и т. д. с верхним размером объекта.

в onProgressUpdate рассчитать, как многое было сделано с момента последнего обновления, поэтому вы можете оценить время и обновить свой индикатор выполнения, достигнув итоговой суммы.

3
ответ дан jkhouw1 27 August 2018 в 04:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: