Быстрое клонирование дисков [закрывается]

Если существует проблема с методом onActivityResult, который находится внутри класса фрагмента, и вы хотите обновить то, что находится внутри класса фрагмента, используйте:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    if(resultCode == Activity.RESULT_OK)
    {
        // If the user had agreed to enabling Bluetooth,
        // populate the ListView with all the paired devices.
        this.arrayDevice = new ArrayAdapter<String>(this.getContext(), R.layout.device_item);
        for(BluetoothDevice bd : this.btService.btAdapater.getBondedDevices())
        {
            this.arrayDevice.add(bd.getAddress());
            this.btDeviceList.setAdapter(this.arrayDevice);
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}

Просто добавьте this.variable, как показано в приведенном выше коде. В противном случае метод будет вызван внутри родительского действия, и переменная не будет обновляться в текущем экземпляре.

Я также протестировал его, поместив этот блок кода в MainActivity, заменив this на HomeFragment и переменные статические. Я получил результаты, как я ожидал.

Итак, если вы хотите, чтобы класс фрагмента имел свою собственную реализацию onActivityResult, приведенный выше пример кода является ответом.

5
задан Joshua 17 May 2018 в 01:38
поделиться

5 ответов

Егеровская ткань Commodore права относительно:

dd if=/dev/sda of=/dev/sdb bs=1M

Кроме того, корректировка "readahead" на дисках обычно улучшает производительность. Значение по умолчанию может быть чем-то как 256, и оптимальные 1024. Каждая установка отличается, таким образом, необходимо было бы выполнить сравнительные тесты для нахождения оптимального значения.

# blockdev --getra /dev/sda
256
# blockdev --setra 1024 /dev/sda
# blockdev --getra /dev/sda
1024
# blockdev --help
Usage:
  blockdev -V
  blockdev --report [devices]
  blockdev [-v|-q] commands devices
Available commands:
    --getsz (get size in 512-byte sectors)
    --setro (set read-only)
    --setrw (set read-write)
    --getro (get read-only)
    --getss (get sectorsize)
    --getbsz    (get blocksize)
    --setbsz BLOCKSIZE  (set blocksize)
    --getsize   (get 32-bit sector count)
    --getsize64 (get size in bytes)
    --setra READAHEAD   (set readahead)
    --getra (get readahead)
    --flushbufs (flush buffers)
    --rereadpt  (reread partition table)
    --rmpart PARTNO (disable partition)
    --rmparts   (disable all partitions)
#
10
ответ дан 18 December 2019 в 06:24
поделиться

Возможно, можно использовать два процесса

dd if=indevfile | dd of=outdevfile

Я предположу, что можно установить другие dd опции, поскольку это подходит Вам. Это имеет немного служебные, но должно позволить asynchrony между чтением одного диска и записью другой.

1
ответ дан 18 December 2019 в 06:24
поделиться

Вы уверены, что это не делает этого одновременно? Я ожидал бы, что дисковые кэши удостоверятся он, который происходит. В противном случае неблокирование или даже асинхронные чтения/записи может помочь,

0
ответ дан 18 December 2019 в 06:24
поделиться

Вы могли бы попытаться увеличить размер блока с помощью аргумента бакалавра наук; по умолчанию я полагаю, что dd использует размер блока, равный предпочтительному размеру блока диска, который будет означать намного больше чтений и записей копировать весь диск. dd Linux поддерживает человекочитаемые суффиксы:

dd if=/dev/sda of=/dev/sdb bs=1M
7
ответ дан 18 December 2019 в 06:24
поделиться

О Вашем обновлении: Насколько большой кэши Вашего HDs? (особенно пишущий). Может случиться так, что это слишком много, и Вы, возможно, должны уменьшить его для предотвращения ненужного блокирования.

0
ответ дан 18 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

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